3

新しいオブジェクト Student を作成し、それを配列リスト StudentRegister に追加するメソッドがあります。

public void addStudent(String name, String age)
{
     studentRegister.add(new Student(name, age));
}

ここで Student クラスのコンストラクターを呼び出します。

public Student(String name, String age) 
{
  this.name = name;
  this.age = age;
}

これは機能しますが、Student クラスと addStudent メソッドの両方で追加のパラメーターを変更する必要があるため、保守性には問題があります。addStudent メソッドでハードコーディングせずに addStudent 段階でパラメーターを入力するにはどうすればよいですか?

4

3 に答える 3

6

これを行うだけです:

public void addStudent(Student s)
{
     studentRegister.add(s);
}

また、コンストラクター/その他のメソッドでは、上記のメソッドを次のように呼び出すことができます。

public Student(String name, String age) 
{
  this.name = name;
  this.age = age;
  addStudent(this); //here is the call to the above method
}
于 2013-10-22T18:09:35.337 に答える
4

2 つの値の代わりに、学生オブジェクトを渡す必要があります。

public void addStudent(Student student)
{
     studentRegister.add(student);
}
于 2013-10-22T18:09:24.500 に答える
0

使用する

public void addStudent(final Student student) {
    studentRegister.add(student);
}

より良いアプローチです。

オブジェクトを構築するためのより簡単な方法を探しているかもしれません。例: チェーンセッターの使用:

public class Student {

    private String name;
    private String age;
    private String address;

    public String getName() {
        return name;
    }

    public Student setName(String name) {
        this.name = name;
        return this;
    }

    public String getAge() {
        return age;
    }

    public Student setAge(String age) {
        this.age = age;
        return this;
    }

    public String getAddress() {
        return address;
    }

    public Student setAddress(String address) {
        this.address = address;
        return this;
    }
}

したがって、次のようになります。

Student student = new Student().setName("User")
                               .setAge("30")
                               .setAddress("New York");

通常のセッターでオブジェクトを構築する別の方法:

Student student = new Student(){{
    setName("User");
    setAge("30");
    setAddress("30");
}};
于 2013-10-22T18:21:47.937 に答える