通用堆栈不接受整数值

时间:2016-02-07 06:24:34

标签: java

有人可以帮助我找出为什么我的通用堆栈不接受整数值吗?我收到一个编译错误,指出:意外类型。

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);
   }
}

任何帮助都将不胜感激。

3 个答案:

答案 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是一个对象包装类,用于将基本数据类型转换为对象

您可能还想检查拳击和拆箱,以消除疑虑。