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);
有人可以指出什么是错的吗?我想把一个字符串推到堆栈。
答案 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<>();