Я создаю систему управления контентом с помощью Java, у меня есть класс для выражения сущности и класс для выражения поля внутри объекта.Свойство класса 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;
}
}
Я хотел бы хранить String, Integer, поплавки и даты, я имею в виду, я мог бы ввести и проверить значения, когда они вводятся и имеют отдельные методы для получения как правильные типы.
public ArrayList<Integer> getIntegerValues(){
ArrayList<Integer> integerValues = new ArrayList<Integer>();
values.forEach(
(v) -> {
Integer intValue = Integer.parseInt(v);
integerValues.add(intValue);
}
);
return integerValues;
}
Я полагаю, что это будет работать, но он не чувствует себя как отличное решение, так как при использовании этого класса вы должны выбрать правильную функцию для получения типов. Было бы хорошо, если бы была только одна функция, чтобы вернуть правильную версию.
Есть ли у кого-нибудь идеи, как я могу написать это лучше.
Похоже, вы хотите использовать generics – Kelvin
Может ли одно поле содержать несколько типов? –
Никакое поле никогда не будет содержать разные типы. –