Ich schreibe ein Programm, um Eingaben aus einer Textdatei (enthalten nur Ganzzahlen), in die verknüpfte Liste und die verknüpfte Liste anzuzeigen. Hier ist mein Code:nicht statische Methode kann nicht von einem ** statischen Kontext ** referenziert werden. Was ist der statische Inhalt hier?
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
class Node{
int value;
Node next;
Node(){
next = null;
}
}
public class ReverseLL{
public static void main(String[] args) throws FileNotFoundException{
Scanner in = new Scanner(new File("input.txt"));
Node head = null;
Node tail = null;
while(in.hasNextInt()){
Node ptr = new Node();
ptr.value = in.nextInt();
if(head == null){
head = ptr;
tail = ptr;
}else{
tail.next = ptr;
}
tail = ptr;
}
display(head);
in.close();
}
static void display(Node head){
while(head!=null){
System.out.print(head.value + " " + "\n");
head = head.next;
}
}
}
Es funktioniert jetzt, nachdem ich die Anzeigemethode geändert statische zu sein. Allerdings bevor ich zu statisch wechselte. Der Fehler sagte nicht-statische Methode Anzeige (Node) kann nicht von einem ** statischen Kontext verwiesen werden Ich lese ein Dokument über die statische und nicht-statische. Um ein No-Static zu nennen, muss ich eine Instanz instanziieren und dann wie instance.method aufrufen. Um die statische Methode aufzurufen, können Sie wie "class.method" aufrufen. Meine Frage basiert auf meinem Programm. Ich habe die Methode in keiner anderen Klasse erstellt, warum muss ich in die statische Methode wechseln? Wie lautet der so genannte statische Inhalt? Danke, dass du es mir erklärt hast.
public ** statisch ** void main (String [] args). – DimaSan
@ 1615903 Ich frage nach einem anderen. – Jeffery
@ Jeffery ist ein komplettes Duplikat und erklärt, warum der Compiler dort nicht kompiliert wird. – SomeJavaGuy