Sle*_*idi 5 java null reference instance
这是一个简单的代码
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");
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:Java如何知道传递的null是Bar不是Foo?我知道为什么编译器选择Bar而不是Foo(因为有从foo到bar和bar到foo的转换,反之亦然).但是这个方法怎么会知道这个null来自Bar而不是Foo?null是否包含有关分配给的对象的一些信息?