Java通用字段声明
在没有泛型类型的类中,我想声明一个类似于以下内容的相当复杂的泛型字段:
public class Client { private Map<Class<T extends Serializable>, List<Consumer<S extends T>>> classToConsumerTry1;
private <T extends Serializable, S extends T> Map<Class<T>, List<Consumer<S>>> classToConsumerTry2;
}
问题是Java编译器不会让我:)
所以我的问题是如何正确地引入T和S,而又不向类Client添加类型。
我的目标是强制Class
成为您选择的类的子类型Serializable
和Consumer
作为子类Class
。
回答:
你不能
唯一的选择是在Client
类声明中声明泛型类型参数。如果您的Client
类没有泛型类型参数,则其成员不能为泛型。您必须在类成员的声明中使用实际类型。
以上是 Java通用字段声明 的全部内容, 来源链接: utcz.com/qa/415928.html