如何在下面的代碼中刪除警告Unchecked overriding: return type requires unchecked conversion. Found 'org.example.AAndB<java.lang.integer>', required 'T'.
。類型參數範圍 - 取消選中覆蓋:返回類型需要非選中轉換
我嘗試這樣一種方式,它不會明確說明方法get()
(AAndB<Integer>
)的返回類型,而是枚舉接口的結果必須實現(<T extends B<Integer> & A> T
)來設計的接口(Interface
)。
package org.example;
class InterfaceImpl implements Interface {
public AAndB<Integer> get() {
// ^----- Unchecked overriding: return type requires unchecked conversion. Found 'org.example.AAndB<java.lang.integer>', required 'T'.
final AAndB<Integer> aAndB = new AAndB<Integer>();
return aAndB;
}
}
interface Interface {
<T extends B<Integer> & A> T get();
}
class AAndB<T> implements A, B<T> {
public void a() {
}
public void b(T t) {
}
}
interface A {
void a();
}
interface B<T> {
void b(T t);
}
我發現相關問題[如何引用具有多個邊界的泛型返回類型](http://stackoverflow.com/questions/14464226/how-to-reference-a-generic-return-type-with-multiple-邊界)與全面的[答案](http://stackoverflow.com/a/14469627/639687)。 – czerny