在null对象上调用静态方法

roz*_*rro 5 java null

我很想知道你如何解释我在这个测验中发现的这个任务?即使getFoo方法返回null,输出仍然是Getting Object JavaQuiz.我认为应该是NullPointerException.

   public class Foo {

        static String name = " JavaQuiz";

        static Foo getFoo() {
            System.out.print("Getting Object");
            return null;
        }

        public static void main(String[] args) {
            System.out.println(getFoo().name);
        }

   }
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 11

访问静态方法或变量可以通过包含该静态方法/变量的类的空引用来完成.

由于name是静态的,无论是否返回都getFoo().name具有相同Foo.name或相同的结果.namegetFoo()null

但是,在访问静态方法/变量时使用类名总是更好,因为它清楚表明您打算访问静态成员.