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);
}
}
所以我无法编译代码并给出了这个错误。
错误:类型不兼容:字符串无法转换为字符 Platestack.push(pl);
有人可以指出哪里出了问题吗?我想将一个字符串压入堆栈。
最佳答案
当我编译此类(使用 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
。如果您这样做了,您就定义了 Stack.push
操作(仅)char
参数,那么that就可以解释这个编译错误。这也可以解释没有其他人看到编译错误。
关于java - 由于 : String cannot be converted to char,堆栈无法推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36424202/