public class Test {
private static void testMethod(){
System.out.println("testMethod");
}
public static void main(String[] args) {
((Test)null).testMethod();
}
}
输出:
testMethod
Test t = null;
t.testMethod();
输出:
testMethod
- 此处是类方法(static)的调用,不是对象方法的调用,类方法使用不依赖对象是否被创建
- null可以被强制类型转换成任意类型,可以通过它来执行静态方法
- 非静态的方法用“对象.方法”的方式,必须依赖对象被创建后才能使用,若将testMethod()方法前的static去掉,则会报空指针异常
本文介绍了如何通过null对象调用Java中的静态方法,并解释了静态方法与非静态方法的区别。展示了即使在对象为null的情况下,也能成功调用静态方法。
529

被折叠的 条评论
为什么被折叠?



