【发布时间】:2016-08-01 01:03:58
【问题描述】:
我有以下课程Type:
class Type{
String type;
public Type(String type){
this.type = type;
}
}
我在这里初始化了几个类型:
Type cor = new Type("cor");
Type name = new Type("name")
现在我想要一个名为Record的类,
class Record{
String name;
Type[] types;
public Record(String name, Type[] types){
this.name = name;
this.types = types;
}
}
好吧,我被困在这里了。我想要做的是初始化类Record的实例时,像这样:
Record rec = new Record("Position", ...);
应该是这样的,我这里举个位置记录的例子:
Record Position = [cor x, cor y, name z];
那么在这里使用 Type[] 是一个不错的选择吗?我发现很难同时记录类型和变量名,例如x、y;
还是应该使用 HashMap?
【问题讨论】:
-
Record类试图建模什么?它目前看起来像是任意数据类型的容器(因此不是很有用)。此外,Type只是命名字符串的包装器;它应该用来做什么? -
呃,
int是原始类型,不是 Type 类型 -
我把它留在这里只是为了让这个问题在这里更清楚。问题是在记录类中同时记录类型实例和类型名称
-
好吧,如果你想要一个既有类型名又有变量名的类,你需要定义一个有类型名和变量名的类(或者
Type和一个变量名),而不是只有一个类型名的Type。 -
你可以让这个类成为一个通用的 {name, type, value} 容器,但我仍然看不到这里的大局。例如:
public class Type<T> { String name; Class<T> clazz; T value; public Type(String name, Class<T> clazz, T value){ this.name = name; this.clazz = clazz; this.value = value; } }
标签: java arrays dictionary record