我有以下课程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?
答案 0 :(得分:0)
如果没有关于您要模拟的内容的更多信息,很难回答这个问题。你的职位'例子是相当混乱的,因为它意味着单个记录有几个变量'不同类型。但是我假设一个记录可以有几种类型。目前还不清楚类型是否可以改变以及是否存在一组固定的类型。
理想情况下,这组类型是静态的,您可以使用类型的枚举:
enum RecordType {
COR, NAME, ...;
}
class Record {
public Record(String name, EnumSet<RecordType> types) {
...
}
}
然后创建一条新记录如下:
Record record = new Record("My record", EnumSet.of(RecordType.NAME));
如果类型集不是静态的,那么您将需要定义一个类。在这种情况下,我建议您使用Set<RecordType>
而不是RecordType[]
作为构造函数参数。这清楚地表明它是一组类型(即没有重复),并且避免了您需要对数组进行的所有错误检查。
如果单个记录可以有不同类型的多个值,那么您将需要一个Map<RecordType,String>
成员变量。在这种情况下,我建议不要尝试在构造函数中定义值。而是使用addTypeValue
方法向地图添加值。