gpt4 book ai didi

java - 如何使用泛型返回泛型类的类类型?

转载 作者:行者123 更新时间:2023-12-02 06:29:24 33 4
gpt4 key购买 nike

假设我有一个这样的界面;

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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com