有人可以帮助我找出为什么我的通用堆栈不接受整数值吗?我收到一个编译错误,指出:意外类型。
import java.util.Scanner;
public class Application {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args)
{
int phoneNumber;
int rightDigit;
GenericStack<int> digits = new GenericStack<int>();
System.out.print("Enter Your phone number: ");
phoneNumber = sc.nextInt();
while (phoneNumber !=0)
{
rightDigit = phoneNumber % 10;
digits.push(rightDigit);
phoneNumber /= 10;
}
System.out.print("Your phone number is: ");
for(int i=0; i< digits.size(); i++)
System.out.print(digits.get(i));
System.out.println();
}
}
这是通用堆栈类:
import java.util.LinkedList;
public class GenericStack<E> {
private LinkedList<E> digitsList = new LinkedList<E>();
public void push(E digit) {
digitsList.addFirst(digit);
}
public int get(E index) {
return digitsList.get(index);
}
}
任何帮助都将不胜感激。
答案 0 :(得分:1)
在这一行:
GenericStack<int> digits = new GenericStack<int>();
你需要使用一个类而不是一个原语。将int更改为Integer。
答案 1 :(得分:0)
它不会接受原语,它会接受int Wrapper,Integer
GenericStack<Integer> digits = new GenericStack<Integer>();
答案 2 :(得分:0)
该行必须更改为
GenericStack<Integer> digits = new GenericStack<Integer>();
这里,Integer是一个对象包装类,用于将基本数据类型转换为对象
您可能还想检查拳击和拆箱,以消除疑虑。