-3
如何才能实现将一个类的泛型类型化为多个calsses? 一个例子是Number和Boolean的子类。generic java中的多个类的类型
如何才能实现将一个类的泛型类型化为多个calsses? 一个例子是Number和Boolean的子类。generic java中的多个类的类型
如果我正确理解你的问题,其中一个选项是创建数量有限的情况下,额外的枚举类类:
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;
}
}
现在你的类可以这样声明:
public class MyClass<T> {
public MyClass(ValueType<T> type) {
Class<T> clazz = type.getType();
}
}
所以,你可以实例化它像
MyClass<Boolean> c = new MyClass<>(ValueType.BOOLEAN);
或者
MyClass<Integer> c = new MyClass<>(ValueType.INTEGER);
但是您没有其他选择,因为您没有其他ValueType
对象。
您如何期望使用这个通用参数?为了澄清你的问题,请写一个代码示例(可能使用你想要的一些不存在的语言结构)。 –
了解接口和多态,以及JDK具有Object类的方式,它是JDK中存在的或您自己创建的所有其他类的超类。因此,在接收方法参数或创建不同类型的集合时,Object类可以充当泛型类型。 –