假设我有一个这样的界面;
public interface Validator<T> {
Class<T> type();
}
如果我想用对象来实现这个接口(interface),没有任何问题;
public OrderValidator implements Validator<Order>{
Class<Order> type(){
return Order.class;
}
}
但是如果我像这样将 Collection 作为泛型类型传递,我将无法实现此接口(interface);
public CollectionValidator implements Validator<Collection<Item>>{
Class<Collection<Item>> type(){
//how can I implement this method to return type of Collection<Item> ?
}
}
我该如何实现type()
返回 Collection< Item>
类型的方法?
Collection< Item>.class
不起作用。
最佳答案
如果您只想编译它,请尝试:
public interface Validator<T> {
Class<T> type();
}
public static class CollectionValidator<Item> implements Validator<Collection<Item>>{
@SuppressWarnings("unchecked")
public Class<Collection<Item>> type() {
return (Class<Collection<Item>>) (Class<?>) Collection.class;
}
}
关于java - 如何使用泛型返回泛型类的类类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20216411/