爲什麼編譯?爲什麼在Java中編譯?
B在沒有任何通用參數的情況下使用,並且這在Java中編譯。這裏發生了什麼?
interface B<T>
{
public T Foo(T value);
}
public class A
{
public B What()
{
return null;
}
public void Foo()
{
B x = What();
x.Foo(123);
}
}
什麼類型的對象可以添加到列表中?一切都被視爲「對象」嗎? – cgTag
是的,使用原始類型意味着可以添加任何對象。所以,如果你有一個'String'的列表(沒有泛型),如果你稍後嘗試向它添加一個Integer,編譯器就不會抱怨。 –
@nachokk它不一樣,編譯器用原始類型處理表達式有點不同。 (雖然它可能夠接近。) – millimoose