2011-10-22 7 views
0

Possible en double:
What is the reason behind “non-static method cannot be referenced from a static context”?Une "méthode non statique ne peut pas être référencé à partir d'un contexte statique" erreur apparaît, ne sachant pas

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

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

Pourquoi ai-je cette erreur? J'ai trier(); dans une autre classe abstraite et ensuite cette classe l'étend.

-Confused

+0

Bon travail en essayant de faire un exemple minimal, mais vous avez oublié la classe contenant :) – ObscureRobot

Répondre

2

Vous devez instancier la classe qui contient Sort(), displayResults() et principal avant de pouvoir appeler Sort() ou displayResults() de main().

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

Danke! Cela a résolu mon problème. – jackie

0

Vous avez besoin d'une instance d'une classe pour appeler une méthode non statique. Appelant à partir d'une méthode statique, vous n'avez pas d'instance, car les statistiques sont associées à une classe et non à une instance. Par conséquent, vous n'êtes pas autorisé à appeler des méthodes non statiques ou à accéder à des variables non statiques à partir d'un contexte statique.

Questions connexes