java中的null值是可以强制转换为任何java类型的,就像(String)null是合法的,但null强转后的是无效对象,其返回值还是为null,但是例如下面这种情况
public class NULL { public static void main(String[] args) { ((NULL)null).haha(); } public static void haha(){ System.out.println("haha"); } }
输出为
haha
原因是static方法的调用是和类名绑定的,不借助对象进行访问,所以能够正确输出,如果没有加上static修饰,就会报空指针的错误了