Невозможно преобразовать из целого числа в целое число в Java - PullRequest
0 голосов
/ 26 марта 2020

У меня есть стек целых чисел, и я работаю над методом вставки в него элементов из JOptionPane. Однако JOptionPane возвращает строку, поэтому я проанализировал ее в int, но затем я попытался вставить значение в стек и, по-видимому, сначала мне нужно преобразовать его из int в Integer.

Поэтому я попытался с помощью то, что упоминалось в каждом руководстве, создайте новый объект Integer со значением parsedInt, но я получаю ошибку

"unexpected type
  required: class
  found:    type parameter Integer
  where Integer is a type-variable:
    Integer extends Object declared in class SizedStack"

Это код, который я пытаюсь

public void addToStack(JOptionPane optionPane) {
    int val;
    String temp;
    temp = optionPane.showInputDialog("Enter an integer to insert into the stack");
    val = parseInt(temp);
    Integer valInteger = new Integer(val);
    this.push(valInteger);
}

строка Integer valInteger = new Integer(val); обозначает ошибку.

Есть идеи, что случилось?

Ответы [ 2 ]

4 голосов
/ 26 марта 2020

Похоже, вы объявили, что ваш класс похож на:

class SizedStack<Integer> {

Integer теперь переменная типа, а не класс java.lang.Integer.

Если вы хотите, чтобы он быть обобщенным c классом, напишите что-то вроде:

class SizedStack<T> {

Или для Integer -только стека.

class SizedStack {

Если это Integer -только стек, реализующий универсальный стек c.

class SizedStack implements Stack<Integer> {
0 голосов
/ 26 марта 2020

Если вы статически не импортировали метод Integer.parseInt(), я полагаю, что в вашем вызове parseInt() отсутствует класс Integer.

public void addToStack(JOptionPane optionPane) {
    int val;
    String temp;
    temp = optionPane.showInputDialog("Enter an integer to insert into the stack");
    val = Integer.parseInt(temp);
    Integer valInteger = new Integer(val);
    this.push(valInteger);
}

Изменено val = parseInt(temp); на val = Integer.parseInt(temp);

...