无法在 Java 中从 int 转换为 Integer

Unable to convert from int to Integer in Java

我有一个整数堆栈,我正在研究一种从 JOptionPane 向其中插入元素的方法。 但是,JOptionPane returns 是一个字符串,所以我将它解析为一个 int,但随后我尝试将值插入堆栈,显然,我需要先将它从 int 转换为 Integer。

所以我尝试了每个指南都提到的内容,使用 parsedInt 的值创建一个新的 Integer 对象,但是我收到错误

"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); 是标记错误的行。

有什么问题吗?

您似乎已声明您的 class 类似于:

class SizedStack<Integer> {

Integer 现在是类型变量,而不是 class java.lang.Integer.

如果你想让它成为一个通用的class,写成这样:

class SizedStack<T> {

或仅 Integer 个堆栈。

class SizedStack {

如果它是实现通用堆栈的 Integer-only 堆栈。

class SizedStack implements Stack<Integer> {

除非您已静态导入方法 Integer.parseInt(),否则我相信您在 parseInt() 调用中缺少 class 整数。

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