2017-11-26 1 views
0

Weder meine Leere Zugriff noch Bezeichner ist statisch, sondern die String.split() -Methode mir den Fehler geben:Nichts ist statisch, obwohl anscheinend kann ich nicht ein Nicht-static void

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Cannot make a static reference to the non-static method split(String) from the type String 

at cal.scan.ScanningForType.Scan(ScanningForType.java:17) 
at cal.scan.ScanningForType.Print(ScanningForType.java:30) 
at cal.Cal.main(Cal.java:9) 

Auch hier meine beiden Klassen ist:

import java.util.Scanner; 

public class ScanningForType { 

    private int a, b; 
    private String[] numsI; 
    private String num1, num2, nums; 

    private Scanner sc = new Scanner(System.in); 

    public void Scan(String type) { 
     if(type == "Addition") { 
      System.out.println("What two nums?"); 
      nums = sc.nextLine(); 
      numsI = String.split(""); 
     } else if(type == "Subtraction") { 
      System.out.println("What two nums?"); 
     } else if(type == "Multiplication") { 
      System.out.println("What two nums?"); 
     } else if(type == "Division") { 
      System.out.println("What two nums?"); 
     } else { 
      System.out.println("Not yet supported - will be soon"); 
     } 
    } 

    public void Print() { 
     Scan("Addition"); 
    } 

} 

und

import cal.scan.ScanningForType; 

public class Cal { 

    public static void main(String[] args) { 
     ScanningForType sft = new ScanningForType(); 
     sft.Print(); 
    } 

} 

Aus irgendeinem Grund - ich kann nicht sehen, warum - ich diesen Fehler halte, das sollte nicht angerufen werden, obwohl Java es für angebracht hält, angerufen zu werden. Ich bin in der Vergangenheit nicht darauf gestoßen, deshalb weiß ich nicht, warum Java denkt, dass diese Zeit anders ist als all die anderen Male, in denen ich String.split() benutzt habe.

+3

Sie invokng 'split' auf der' String' Klasse, nicht 'nums'. –

+3

Auch Ihr String-Vergleich funktioniert nur zufällig: 'type.equals (" ... ")' statt '=='. –

+0

@AndyTurner, die alles behoben. –

Antwort

-2

Hier ist der Fehler

numsI = String.split(""); 

Sie den Aufruf der Split-Methode auf String-Klasse. Ändern Sie diese an:

numsI = nums.split(""); 
Verwandte Themen