所以我才知道我可以
public <T extends SomeClass & SomeInterface<OtherClass>> doSomething(T foo);
在 Java 中表示 foo
延伸SomeClass
并且还实现了 SomeInterface<OtherClass>
.到目前为止,还不错。
但是我将如何分配 foo
在 doSomething()
到成员变量?该类当然不知道附加到 doSomething()
的类型定义的任何内容。方法。
我需要它的上下文是一个 POJO,它的构造函数需要用 T
来论证这需要返回所述 T
再次。
我最接近的是:
public class ThisClass implements AnotherInterface<AnotherClass> {
private final Object obj;
public <U extends SomeClass & SomeInterface<AnotherClass>> ThisClass(U obj) {
this.obj = obj;
}
public <U extends SomeClass & SomeInterface<AnotherClass>> U getObject() {
return (U) obj;
}
}
但如果没有未经检查的转换,我无法绕过头来获得解决方案。
最佳答案
你不能让类通用:
public class ThisClass<U extends SomeClass & SomeInterface<AnotherClass>>
implements AnotherInterface<AnotherClass> {
private final U obj;
public ThisClass(U obj) {
this.obj = obj;
}
public U getObject() {
return obj;
}
}
并像这样使用它:
ThisClass<String> instance = new ThisClass<>("Foo");
String value = instance.getObject();
关于java - 具有多个边界的成员类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092553/