-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類可以充當泛型類型。 –