我在Java中使用泛型時遇到了接口繼承的問題。 這裏是一個exampe:Java泛型與接口繼承結合使用
public interface Type0 { }
public interface Type1 extends Type0 {
void method();
}
public interface SomeInterface0<T extends Type0> {
T get();
}
public interface SomeInterface1<T extends Type1> extends SomeInterface0<T> { }
現在,當我嘗試使用SomeInterface1
類型的字段,不類型參數的Java comiler治療的方法SomeInterface1.get()
結果作爲Type0
類型。而不能編譯這樣的事情:
...
SomeInterface1 si1;
...
si1.get().method();
那麼,爲什麼SomeInterface1<T extends Type1>
有T
= Type0
默認vlue?
謝謝,我明白了! )) – dbolotin