【发布时间】:2018-07-29 13:14:13
【问题描述】:
所以我有这个代码:
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 会变成原始类型。
【问题讨论】:
-
因为您明确指出应将
j用作int而不是integer? -
因为您声明
j是int,而不是Integer。 -
你声明了
int j,而不是Integer j。