基本上,我想创建一个在编译时就已经知道的值的数据结构。在C语言中,我会这样做:
struct linetype { int id; char *descr; };
static struct linetype mylist[] = {
{ 1, "first" },
{ 2, "second" }
};
我在Java中发现的唯一灵魂是在运行时创建数组:
public class Outer {
public class LineType {
int id;
String descr;
private LineType( int a, String b) {
this.id = a;
this.descr = b;
}
}
LineType[] myList = {
new LineType( 1, "first" ),
new LineType( 2, "second" ),
};
这看起来很麻烦且无效(当结构变长且复杂时)。还有另一种方法吗?
(注意:请不要理会任何语法错误,因为这只是为此问题创建的示例代码。此外,我知道String除了指向数据段的字符指针之外还有其他用途。但是,该参数也适用于原始数据类型)。
最佳答案
您必须将LineType设为静态类:
public class Outer {
public static class LineType {
int id;
String descr;
private LineType( int a, String b) {
this.id = a;
this.descr = b;
}
}
static LineType[] myList = {
new LineType( 1, "first" ),
new LineType( 2, "second" ),
};
}