gpt4 book ai didi

java - 你能同时要求多种类型吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:59:07 24 4
gpt4 key购买 nike

基本上我想这样做:

public interface A {
void a();
}
public interface B {
void b();
}
public class SomeClass {
public SomeClass(<A&B> e) { // Note the type here
e.a();
e.b();
}
}

我在注释行的所作所为显然是违法的。我知道我可以只要求传递的对象实现接口(interface) A 或接口(interface) B,但是有没有办法同时实现这两者?

我想有解决方法(比如要求参数是类型 A 然后检查它是否也是一个 instanceof B),但那样我就得不到编译器的帮助。你知道有什么方法可以做到这一点吗?或者也许是更聪明的解决方法...

最佳答案

您可以在启用泛型的情况下做到这一点。例如,接受某个同时实现了 CharSequence 和 Appendable 的类的实例:

  public <T extends CharSequence & Appendable> void someMethod(T param) {
...
}

关于java - 你能同时要求多种类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/437854/

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