Я хочу иметь общий c класс A, «значением» которого может быть только JSON -сериализуемый объект. Для этого я решил реализовать интерфейс самостоятельно. Проблема в том, что я хочу избежать следующего использования:
A a = new A("name", new BooleanType(false)); // I would like to just pass false as the argument
Моя настройка такая:
Class A <T extends Type> {
private String name;
private T value;
//getter...
}
-
Interface Type {
Object value;
}
-
Class BooleanType implements Type {
private Boolean value;
public BooleanType(Boolean value){
this.value = value;
}
}
другие разработчики типов ...
Одна из моих идей заключалась в том, чтобы иметь метод для каждого типа в классе A:
Class A <T extends Type> {
private String name;
private T value;
public static A of(String name, Boolean value){
this.name = name;
this.value = value;
}
//of implementations for Integer, LocalDatetime, etc
//getter...
}
Могу ли я достичь этого, не имея нескольких методы в A для создания каждого отдельного типа?