【发布时间】:2016-09-26 06:15:59
【问题描述】:
我正在用 Java 构建一个内容管理系统,我有一个表示实体的类和一个表示实体内的字段的类。
目前我的 Field 类作为 String 的数组列表来存储所有值。
我的班级是这样的:
public class Field implements Serializable {
private UUID key;
private String name;
private ArrayList<String> values;
private Integer maxValues;
private ValueType type;
private String code;
public enum ValueType {
INT,
VARCHAR,
DATE,
BOOLEAN
}
public void addValue(String value){
if (this.values.size() < this.maxValues){
this.values.add(value);
}
}
public ArrayList<String> getValues(){
return this.values;
}
}
我想存储字符串、整数、浮点数和日期,我想我可以在输入值时对它们进行类型检查,并有单独的方法将这些值作为正确的类型来获取。
public ArrayList<Integer> getIntegerValues(){
ArrayList<Integer> integerValues = new ArrayList<Integer>();
values.forEach(
(v) -> {
Integer intValue = Integer.parseInt(v);
integerValues.add(intValue);
}
);
return integerValues;
}
我认为这可行,但感觉不是一个很好的解决方案,因为在使用此类时,您必须选择正确的函数来获取类型。如果只有一个函数可以返回正确的版本,那就太好了。
有没有人知道我怎样才能写得更好。
【问题讨论】:
-
看起来你想使用泛型
-
一个字段可以包含多个类型吗?
-
没有一个字段永远不会包含不同的类型。