2016-04-05 5 views
0
import java.util.*; 

public class plates2{ 
    private static Scanner in; 
    private static Stack platestack = new Stack(); 

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

    public static void add() 
    { 
     Scanner in = new Scanner(System.in); 

     System.out.print("Enter plate: "); 
     String pl = in.nextLine(); 

     System.out.println("Plate added! "); 

     platestack.push(pl); 
    } 
} 

So kann ich den Code nicht kompilieren und gab mir diesen Fehler.Stack kann nicht drücken aufgrund: String kann nicht in char konvertiert werden

Fehler: inkompatible Typen: Zeichenfolge kann nicht in Zeichen konvertiert werden platestack.push (pl);

Kann jemand bitte darauf hinweisen, was los ist? Ich möchte eine Zeichenfolge auf den Stapel schieben.

+0

Ihr Code funktioniert gut für mich – SpringLearner

+0

Ihr Code funktioniert gut! :) –

+0

Wenn ich diese Klasse (mit Java 8) kompiliere, erhalte ich keine Fehlermeldungen. Ich bekomme nur eine Warnung über unsichere/ungeprüfte Operationen. –

Antwort

2

Wenn ich diese Klasse kompilieren (mit Java 8), ich alle Fehlermeldungen nicht bekommen. Ich bekomme nur eine Warnung über unsichere/ungeprüfte Operationen.

Aber dann hast du gesagt, du hast das!

error: cannot infer type arguments for Stack private static Stack platestack = new Stack<>(); reason: cannot use '<>' with non-generic class Stack

>> Licht-Lampe Moment < <

Aber java.util.Stack ist eine generische Klasse. Es war seit Java 5, als Generika eingeführt wurden.

Sie müssen Ihre eigene Stack Klasse definiert haben, und Sie müssen sie anstelle des Standards java.util.Stack verwenden. Wenn Sie das getan haben, und Sie definiert die Stack.push Operation zu nehmen (nur) ein char Argument, dann , dass würde diese Kompilierung Fehler zu erklären. Und es würde auch erklären, niemand sonst sieht den Kompilierungsfehler.

+1

>> Glühbirne Moment << Vielen Dank. Ich habe eine Datei mit dem gleichen Klassennamen mit Stack. Das hat den Fehler verursacht. Sehr geschätzt. – Darrius

0

Versuchen Definition Ihrer Stack Strings mit Generika zu verwenden:

private static Stack<String> platestack = new Stack<>(); 
+0

Fehler: kann nicht Typ Argumente für Stack private statische Stapel platestack = new Stack <>(); Grund: kann '<>' nicht mit nicht-generischer Klasse verwenden Stack – Darrius

+0

Welche Java-Version verwenden Sie? –

+0

Ich habe ein Kit jdk1.8.0_66 – Darrius