在Java中,我想创建某种由final
static
常量数组组成的信息表。我想在宣布时初始化它们。我尝试使用数组ArrayList
,HashMap
,但我找不到允许我编写类似内容的语法。
public static final (something) names = {
{ "Albert Einstein", number_1, number_2 } ,
{ "Isaac Newton", number_3, number_4 } ,
{ "Pitagora", number_5, number_6 } ,
};
正如您所看到的是一个数组数组,并创建了一个与DB表等效的数组。这种表的列由不同类型组成(尽管首先所有数据都是字符串,第二位是整数,依此类推)
我应该用什么代替什么?
答案 0 :(得分: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)
};
答案 1 :(得分: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)
};
答案 2 :(得分:1)
如果你不介意缺乏强类型,即使用Object
,你可以简单地使用一个Object数组数组。
编译:
public static final Object [][] names = {
{ "Albert Einstein", number_1, number_2 } ,
{ "Isaac Newton", number_3, number_4 } ,
{ "Pitagora", number_5, number_6 } ,
};
答案 3 :(得分:0)
尝试
public static final String[][] names = { namesarray1, namesarray2 };
答案 4 :(得分:0)
1)封装。创建一个Class
,它汇集了一组属性(名称及其相关属性)
2)创建数组[]
或Collection
(使用子类)来保存该类的值(实例)
答案 5 :(得分: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
}