简体   繁体   English

java中多个类的泛型类型

[英]generic Type of multiple classes in java

How can achieve to boud a generic Type of a class to multiple calsses?如何实现将一个类的泛型类型绑定到多个类? A example is subclasses of Number and Boolean.一个例子是 Number 和 Boolean 的子类。

If I understand your question correctly, one of the options is to create additional enum-like class with limited number of instances:如果我正确理解您的问题,其中一种选择是创建额外的类枚举类,实例数量有限:

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

Now your class can be declared this way:现在你的类可以这样声明:

public class MyClass<T> {
    public MyClass(ValueType<T> type) {
        Class<T> clazz = type.getType();
    }
}

So you can instantiate it like所以你可以像这样实例化它

MyClass<Boolean> c = new MyClass<>(ValueType.BOOLEAN);

Or或者

MyClass<Integer> c = new MyClass<>(ValueType.INTEGER);

But you have no other options, because you have no other ValueType objects.但是您没有其他选择,因为您没有其他ValueType对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM