所以我有这段代码:
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
变成了原始类型。
答案 0 :(得分:3)
我只是不明白为什么对象j变成了原始类型。
因为j
首先不是对象。它是一个原始的int
。您的new Integer(5)
会在分配时自动取消装箱。