相关疑难解决方法(0)

为什么在null引用上调用(静态)方法不会抛出NullPointerException?

我用Java编写了这个程序

public class Why {

  public static void test() {
    System.out.println("Passed");
  }

  public static void main(String[] args) {
    Why NULL = null;
    NULL.test();
  }

}
Run Code Online (Sandbox Code Playgroud)

我读到调用一个null对象的方法导致NullPointerException,但上面的程序没有?为什么是这样?我不正确地理解某事吗?

java null static nullpointerexception

49
推荐指数
1
解决办法
9709
查看次数

为什么我没有得到NullPointerException?

可能重复:
Java中空引用的静态字段

我知道静态方法是在类级别上.所以我知道我不需要创建实例来调用静态方法.但我也知道我可以调用静态方法LIKE一个实例方法.这是我感到困惑的地方,因为我期待NullPointerException从null对象调用静态方法(如在调用实例方法中).我真的很感激为什么我错在NullPointerException这里期待一些解释.

以下是示例代码:

public class SampleClass {

    public static int getSumStatic(int x, int y){
        return x+y;
    }

    public int getDifferenceInstance(int x, int y){
        return x-y;
    }
}

public class TestClass {

    public static void main (String[] args){        
    SampleClass sc=null;

    System.out.println(SampleClass.getSumStatic(2, 2)); //as expected

    //I was expecting NullPointerException in the next line, since I am accessing null object
    System.out.println(sc.getSumStatic(4,5)); //static method , executes perfectly  

    System.out.println(sc.getDifferenceInstance(6,4));//throws NullPointerException
    }
}
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception

16
推荐指数
1
解决办法
745
查看次数

强制方法调用null变量以抛出NullPointerException

可能重复:
如何在空引用上调用(静态)方法不会抛出NullPointerException?
Java中空引用的静态字段

我尝试了这个旧视频的代码:

class Impossible {
    public static void main(String[] args) {
        Thread t = null;
        System.out.println(t.currentThread().getName());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出: main

嗯,那到底是什么?!有没有java.lang.Thread违反任何NullPointerException规则?

但是我最感兴趣的是:如何使该变量表现为抛出NullPointerException?

java null multithreading operation nullpointerexception

8
推荐指数
1
解决办法
980
查看次数

如何对接口的null引用返回值?

代码是:

interface I {
    int i = 0;
    void display();
}

class A implements I {
    I i1;

    public static void main(String[] args) {
        A a = new A();
        a.display();
    }

    public void display() {
        System.out.println(i1); //1
        System.out.println(i1.i); //2
    }
}
Run Code Online (Sandbox Code Playgroud)

代码的输出是

null
0
Run Code Online (Sandbox Code Playgroud)

但是当地址inull,那么在第二个i1.i如何返回一个值?如何使用null引用指向变量?

java

7
推荐指数
1
解决办法
629
查看次数

为什么在使用null引用访问静态时不会出现NullPointerException?

在下面的代码中,我们获得i了null引用的值,尽管a NPE不存在.

public class Test {
    static int i = 10;

    Test getTest() {
        return null;    
    }

    public static void main(String args[]) {
        Test t = new Test();
        System.out.println(t.getTest());  
        System.out.println(t.getTest().i);
    }
}
Run Code Online (Sandbox Code Playgroud)

产量

null
10
Run Code Online (Sandbox Code Playgroud)

java static nullpointerexception

6
推荐指数
2
解决办法
286
查看次数

在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)

java null

5
推荐指数
1
解决办法
552
查看次数

没有Nullpointer异常,即使对象也指向null

可能重复:
Java中空引用的静态字段

我是Java新手.我知道是否有任何对象指向,如果我们尝试对该对象执行任何操作,JVM会抛出Nullpointer异常.但在我的情况下,没有Nullpointer例外请帮助我?以下是我的代码

public class Employee
{

     public static String empName = "John"

     public static void main(String args[])
     {
           Employee emp = new Employee();    
           emp = null;
           System.out.println(emp.empName);
      }   
}
Run Code Online (Sandbox Code Playgroud)

它打印John作为输出,即使emp对象是指向null.但我期待一个nullpointer异常.

java

2
推荐指数
1
解决办法
86
查看次数