2016-04-05 20 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); 
    } 
} 

コードをコンパイルできず、このエラーが表示されました。文字列をcharに変換できません

エラー:互換性のないタイプ:文字列をcharに変換できません platestack.push(pl);

誰かが間違っている点を指摘できますか?私はスタックに文字列をプッシュしたい。

+0

コードは正常に動作します – SpringLearner

+0

あなたのコードは正常に動作しています! :) –

+0

(Java 8を使用して)このクラスをコンパイルすると、エラーメッセージが表示されません。安全でない/チェックされていない操作についてのみ警告が表示されます。 –

答えて

2

私は(Javaの8を使用して)このクラスをコンパイルするとき、私はすべてのエラーメッセージを得ることはありません。安全でない/チェックされていない操作についてのみ警告が表示されます。

しかし、あなたはこれを持っていると言った!

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

>>電球の瞬間< <

しかしjava.util.Stackは、一般的なクラスです。ジェネリックスが導入されて以来、Java 5以降になっています。

Stackクラスを定義しておき、標準java.util.Stackの代わりに使用する必要があります。これを実行した場合、 オペレーションを定義してchar引数を取ると、はこのコンパイルエラーを説明します。そしてそれは他の誰もがコンパイルエラーを見ていることを説明します。

+1

>>電球の瞬間<< ありがとうございました。 Stackと同じクラス名のファイルがあります。それがエラーの原因となりました。とても有難い。 – Darrius

0

は、ジェネリック医薬品との文字列を使用するようにStackを定義してみてください。

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

エラー:スタックの型引数を推測できません。static Stack platestack = new Stack <>(); 理由:ジェネリックでないクラスで '<>'を使用できませんStack – Darrius

+0

実行中のJavaのバージョンは何ですか? –

+0

私はキットがありますjdk1.8.0_66 – Darrius

関連する問題