這是一個簡單的代碼空引用是類的一個實例嗎?
class Foo {
}
class Bar extends Foo {
}
public class Main {
public static void main(String[] args) throws Exception {
fn(null);
}
static void fn(Foo f) {
System.out.println(f instanceof Foo ? "Foo" : "Bar");
}
}
我的問題是:java中如何知道傳遞null是Bar
而不是Foo
? 我知道爲什麼編譯器選擇Bar而不是Foo(因爲有從foo到bar的轉換,從bar到foo的轉換,反之亦然)。 但是,該方法如何知道這個null來自Bar而不是Foo? does null是否包含有關分配給該對象的某些信息?
Null不能是Bar或Foo。它是空的。 –