java中多个类的泛型类型
如何实现将类的泛型类型绑定到多个cals?java中多个类的泛型类型,java,generics,type-bounds,Java,Generics,Type Bounds,如何实现将类的泛型类型绑定到多个cals? 例如Number和Boolean的子类。如果我正确理解了您的问题,其中一个选项是创建具有有限实例数的其他类似enum的类: public final class ValueType<T> { public static final ValueType<Boolean> BOOLEAN = new ValueType<>(Boolean.class); public static final Value
例如Number和Boolean的子类。如果我正确理解了您的问题,其中一个选项是创建具有有限实例数的其他类似enum的类:
public final class ValueType<T> {
public static final ValueType<Boolean> BOOLEAN = new ValueType<>(Boolean.class);
public static final ValueType<Integer> INTEGER = new ValueType<>(Integer.class);
private final Class<T> clazz;
private ValueType(Class<T> clazz) {
this.clazz = clazz;
}
public Class<T> getType() {
return clazz;
}
}
公共最终类值类型{
公共静态最终值类型布尔=新值类型(BOOLEAN.class);
public static final ValueType INTEGER=新的ValueType(INTEGER.class);
私人期末班;
私有价值类型(类别分类){
this.clazz=clazz;
}
公共类getType(){
回击声;
}
}
现在您的类可以这样声明:
public class MyClass<T> {
public MyClass(ValueType<T> type) {
Class<T> clazz = type.getType();
}
}
公共类MyClass{
公共MyClass(ValueType){
类clazz=type.getType();
}
}
所以你可以像这样实例化它
MyClass<Boolean> c = new MyClass<>(ValueType.BOOLEAN);
MyClass c=新的MyClass(ValueType.BOOLEAN);
或
MyClass c=新的MyClass(ValueType.INTEGER);
但是您没有其他选项,因为您没有其他
ValueType
对象。您希望如何使用此通用参数?为了澄清您的问题,请编写一个代码示例(可能使用您想要的一些不存在的语言构造)。阅读有关接口和多态性的内容,顺便说一下,JDK有一个对象类,它是JDK中所有其他类或您自己创建的类的超类。因此,在接收方法参数或创建不同类型的集合时,对象类可以充当泛型类型。
MyClass<Integer> c = new MyClass<>(ValueType.INTEGER);