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成为您选择的类的子类型SerializableConsumer作为子类Class

回答:

你不能

唯一的选择是在Client类声明中声明泛型类型参数。如果您的Client类没有泛型类型参数,则其成员不能为泛型。您必须在类成员的声明中使用实际类型。

以上是 Java通用字段声明 的全部内容, 来源链接: utcz.com/qa/415928.html

回到顶部