【发布时间】:2020-10-31 20:17:28
【问题描述】:
我想要一个通用类 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 中没有多个方法来创建每种不同类型的情况下实现这一点吗?
【问题讨论】:
标签: java class generics types interface