0

次の属性を持つクラス Exam があります。

package logic;

import java.util.ArrayList;

public class Exam {

    private int number;
    private Professor professor;
    private ArrayList<Question> questions = new ArrayList<Question>();
    private ArrayList<Test> tests = new ArrayList<Test>();

    ... // getters, setters, etcetera

}

私の質問はコンストラクタに関するものです:

public Exam(Professor professor, ArrayList<Question> questions) {

    this.professor = professor;

    for(Question question : questions) // <---
        this.questions.add(question); // <---

}

質問を追加するために foreach に代わるものはありますか? たとえば、しばらくまたは別のサイクルを使用しますか? どうしてですか?私は試してきましたが、それを機能させることができませんでした。

4

3 に答える 3

3

シンプルにList#addAll()いかがでしょうか?

this.questions.addAll(questions);

現在のコードが機能しない理由と、どのように失敗するかを説明していただけると助かります (コンパイル エラーですか? 実行時例外ですか? 何か他のものですか?)。

于 2013-01-29T01:01:31.980 に答える
2
  1. コンストラクタ

    this.questions = new ArrayList(questions);

  2. List#addAll

    this.questions.addAll(質問);

  3. 割り当て

    this.questions = 質問;

于 2013-01-29T01:05:37.087 に答える
1
// assign the passed ArrayList to the class attribute
this.questions = questions;
于 2013-01-29T01:04:06.830 に答える