Stack无法推送,原因是:String无法转换为char

时间:2016-04-05 10:45:39

标签: java stack push

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                     platestack.push(PL);

有人可以指出什么是错的吗?我想把一个字符串推到堆栈。

2 个答案:

答案 0 :(得分:2)

当我编译这个类(使用Java 8)时,我没有收到任何错误消息。我只收到有关不安全/未检查操作的警告。

但是你说你得到了这个!

  

错误:无法推断Stack private static Stackstack = new Stack<>();原因:不能使用'<>'使用非泛型类Stack

>>灯泡时刻<<

但是java.util.Stack是一个通用类。从Java 5开始,一直在引入泛型。

您必须定义自己的Stack课程,并且必须使用它而不是标准java.util.Stack。如果你这样做了,你定义了Stack.push操作(仅)char参数,那么 将解释这个编译错误。并且它解释没有其他人看到编译错误。

答案 1 :(得分:0)

尝试定义您的Stack以使用带有泛型的字符串:

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