gpt4 book ai didi

Java泛型字段声明

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:46 25 4
gpt4 key购买 nike

在没有泛型类型的类中,我想声明一个相当复杂的泛型字段,类似于这些:

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 编译器不允许我:)

所以我的问题是如何在不向类 Client 添加类型的情况下正确引入 T 和 S。

我的目标是执行 Class作为 Serializable 的子类型和 Consumer作为您为 Class 选择的类别的子类型.

最佳答案

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

关于Java泛型字段声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32008752/

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