だから私は私ができることを学びました
public <T extends SomeClass & SomeInterface<OtherClass>> doSomething(T foo);
foo
Javaで、それを拡張SomeClass
し、実装することを表現しますSomeInterface<OtherClass>
。ここまでは順調ですね。
しかし、どのようにメンバー変数に割り当てるfoo
のでしょうか?もちろん、クラスはメソッドdoSomething()
にアタッチされている型定義については何も知りません。doSomething()
これが必要なコンテキストはPOJOであり、そのコンストラクターはsaidで引数をとる必要があり、それは再びT
saidを返す必要があります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;
}
}
しかし、チェックされていないキャストなしでは、解決策を得るために頭を丸めることはできません。