为什么Integer类型的对象变为基本类型?

时间:2018-02-19 10:15:52

标签: java types integer int

所以我有这段代码:

public static void main( String[] args )
{
    int i = 3;
    int j = new Integer(5);

    JOptionPane.showMessageDialog(null, Boolean.toString(j.equals(5)));
}

它应该打开一个带有文本" true"的消息对话框。问题是它给出了编译器错误,说我无法调用基本类型int上的方法。为什么会这样?

投射((Integer) j).equals(5)按预期工作。我只是不明白为什么对象j变成了原始类型。

1 个答案:

答案 0 :(得分:3)

  

我只是不明白为什么对象j变成了原始类型。

因为j首先不是对象。它是一个原始的int。您的new Integer(5)会在分配时自动取消装箱。