我不能完全接受这一要求,但这可能有助于:
public class Main {
public static void main(String[] args) {
ContainerWrapper<Integer> containerWrapper = new ContainerWrapper<>(Integer.class);
containerWrapper.add(1);
System.out.println(containerWrapper.containerType());
System.out.println(containerWrapper.isInteger());
}
}
class ContainerWrapper<T> {
// Store type information here
private Class<T> clazz;
private List<T> list = new ArrayList<>();
public ContainerWrapper(Class<T> clazz) {
this.clazz = clazz;
}
public void add(T element) {
list.add(element);
}
public Class<T> containerType() {
return clazz;
}
public boolean isInteger() {
return clazz.isAssignableFrom(Integer.class);
}
}
你可以查一下
T
键入使用
clazz.isAssignableFrom(*.class)
输出:
class java.lang.Integer
true