0

final staticJava では、定数の配列で構成されるある種の情報テーブルを作成したいと考えています。宣言時に初期化したいと思います。配列、ArrayListHashMapで試しましたが、これに似たものを記述できる構文が見つかりません。

public static final (something) names = {
        { "Albert Einstein", number_1, number_2 } ,
        { "Isaac Newton", number_3, number_4 } ,
        { "Pitagora", number_5, number_6 } ,
};

ご覧のとおり、配列の配列であり、DB テーブルに相当するものを作成します。この種のテーブルの列は、さまざまな型で構成されています (ただし、最初の場所のすべてのデータは常に文字列であり、2 番目の場所は整数などです)。

(何か)の代わりに何を置こうか?

4

6 に答える 6

4

配列は、同じタイプのデータのリストを表します。したがって、

 { "Albert Einstein", number_1, number_2 }

配列であってはなりません。実際、これはアプリケーションに固有のものであるため、Java の標準とは言えません。

いくつかのクラスを次のようにします

public class MyData {
    public final String name;
    public final int number1;
    public final int number2;

    public MyData(String name, int number1, int number2) {
        this.name = name;
        this.number1 = number1;
        this.number2 = number2;
    }
}

そして宣言する

public static final MyData[] names = new MyData[] {
    new MyData("Albert Einstein", number_1, number_2) ,
    new MyData("Isaac Newton", number_3, number_4),
    new MyData("Pitagora", number_5, number_6)
};
于 2013-06-22T11:12:07.797 に答える
1

カスタム クラスを探しているようです。

public class Scientist {
    private String name;
    private int numInventions;
    private int numStudents;
    public Scientist(String name, int numInventions, int numStudents) {
        this.name = name;
        this.numInventions = numInventions;
        this.numStudents = numStudents;
    }
    public String getName() {return name;}
    public int getNumInventions() {return numInventions;}
    public int getNumStudents() {return numStudents;}
}

これで、次のように配列を初期化できます。

Scientist[] scientists = new Scientist[] {
    new Scientist("Albert Einstein", number_1, number_2),
    new Scientist("Isaac Newton", number_3, number_4),
    new Scientist("Pitagora", number_5, number_6)
};
于 2013-06-22T11:14:56.197 に答える
0

試す

 public static final String[][] names = { namesarray1, namesarray2 };
于 2013-06-22T11:08:18.690 に答える
0

staticおそらくイニシャライザでそれを行うほうがよいでしょう。

public static final List<Something> names;

static {
    names = new List<Something>();
    // init here below using .add()
    names.add(Something); // something would contain the 3 fields you're grouping together
}
于 2013-06-22T11:12:45.347 に答える
0

1) カプセル化します。Class一連の属性 (名前とそれに関連する属性) をまとめる を作成します。

2)そのクラスの値 (インスタンス) を保持する配列[]または(サブクラスを使用) を作成します。Collection

于 2013-06-22T11:10:06.087 に答える