A出现错误 “非静态方法不能从静态上下文中引用”,不确定

问题描述:

可能重复:
What is the reason behind “non-static method cannot be referenced from a static context”?A出现错误 “非静态方法不能从静态上下文中引用”,不确定

public void Sort(){ 
*some code* 
} 
public void displayResults() 
    {*more code* 
} 

public static void main(String[] args) 
{ 
Sort(); 
displayResults(); 
} 

为什么会出现这个错误?我有sort();在另一个抽象类中,然后这个类将扩展它。

-Confused

+0

努力做出一个小例子的好工作,但你忘了包含类:) – ObscureRobot

您需要实例包含Sort()displayResults()和主要的类,你可以从main()致电Sort()displayResults()之前。

class Example { 
    public void Sort(){ 
     // *some code* 
    } 
    public void displayResults() 
    { 
     // *more code* 
    } 
    public static void main(String[] args) 
    { 
     Example ex = new Example() 
     ex.Sort(); 
     ex.displayResults(); 
    } 
} 
+0

丹科!这解决了我的问题。 – jackie

您需要一个类的实例来调用非静态方法。从静态方法调用,您没有实例,因为静态关联到类,而不是实例。因此,您不允许调用非静态方法或从静态上下文中访问非静态变量。