假设我有一个像这样的接口;
public interface Validator<T> {
Class<T> type();
}
如果我想用一个对象来实现这个接口,那没有任何问题。
public OrderValidator implements Validator<Order>{
Class<Order> type(){
return Order.class;
}
}
但是,如果我将Collection作为这样的通用类型传递,则无法实现此接口;
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;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句