我想声明一个属性来保存实现 2 个不同接口(interface)的类的实例。我尝试过这种语法:
private <? extends Interface1 & Interface2> name;
还有这个:
private <T extends Interface1 & Interface2> T name;
这些都不起作用。是否可以?语法是什么?我试图避免声明另一个继承自 Interface1
和 Interface2
的接口(interface)。
编辑:
包含此属性的类不应有任何类型参数。事实并非如此:
public class MyClass<T extends Interface1 & Interface2>{
private T name;
...
}
对于使用该类的人来说,这没有任何意义。预计该类不可能是通用的,也不符合逻辑。
最佳答案
这需要放在类声明中,例如:
public class TestG<T extends Cloneable & Serializable> {
private T name;
}
一种替代方法是将其设置在方法中(但不是变量)
public class TestG {
public <T extends Cloneable & Serializable> void method(T parameter) {
}
}
关于java - 声明扩展 2 个不同接口(interface)的类型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13429523/