【发布时间】:2016-07-14 04:37:25
【问题描述】:
静态方法尽可能接近全局方法。那么为什么这种类型的方法调用是不可能的呢?有没有其他方法可以在不实例化类的情况下调用静态方法??
import java.io.*;
import java.util.*;
class pgm
{
int x,v;
static void func()
{
System.out.println("Function run");
}
}
class egs
{
public static void main(String args[])
{
pgm p=null;
pgm.func();
try
{
p.x=10;
p.func();
}
catch(NullPointerException e)
{
e.printStackTrace();
}
}
}
【问题讨论】:
-
func不是静态方法。您正在尝试调用一个没有实例的非静态方法来调用它。 -
egs.func()不存在...我不确定您为什么希望它起作用。静态方法不是全局的,它们仍然绑定到类。无论如何,你甚至没有静态方法(除了 main) -
你不需要任何对象实例来调用静态方法。你调用像
ClassName.method()这样的静态方法 -
您对代码进行了一些更正,现在问题出在
p.x = 10;。 p 被分配为 null 并且随后未重新分配。因此,您会收到 NullPointerException。
标签: java static static-methods