gpt4 book ai didi

java - 是否可以创建其成员仅实现多个接口(interface)的类型安全的 Java 集合?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:18:54 25 4
gpt4 key购买 nike

如果我有:

interface A{  void a();  }
interface B{ void b(); }

我可以有一个像这样的通用方法:

class C {
<T extends A & B> void c(T t) {
t.a();
t.b();
}
}

但我不能拥有像这样的通用集合:

class D{
List<? extends A & B> l;
}

我知道我可以创建一个同时扩展 A 和 B 的空接口(interface) E,并有一个包含 E 的列表...但我宁愿让我的类仅标记为 A 和 B,而不必一个 E。当有更多的 A 和 B 可以以 2^n 种方式组合时,这就更成问题了。

我宁愿能够动态定义一个类型,作为接口(interface)的联合,并让集合将实现所有接口(interface)的对象识别为该类型的实例。

有没有办法在 Java 中做到这一点?在这一点上,我愿意接受任何类型的变通或破解,以避免创建新界面,并用它标记我的类,这样它们就可以在一个集合中一起生活。或者,如果有人可以为我澄清为什么这是不可能的,那将同样感激。

最佳答案

public class Foo<T extends A & B> {
private List<T> list;
//getters, setters, etc.
}

关于java - 是否可以创建其成员仅实现多个接口(interface)的类型安全的 Java 集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9969518/

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