java 中多个 类 的通用类型

generic Type of multiple classes in java

如何实现将一个class的泛型类型构建到多个类? 一个例子是 Number 和 Boolean 的 subclasses。

如果我对你的问题的理解正确,其中一种选择是创建额外的类似枚举的 class 实例数量有限:

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;
    }
}

现在您的 class 可以这样声明:

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 个对象。