【问题标题】:Why does an object of type Integer turn to a primitive type? [duplicate]为什么 Integer 类型的对象会变成原始类型? [复制]
【发布时间】: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
  • 因为您声明 jint,而不是Integer
  • 你声明了int j,而不是Integer j

标签: java types integer int


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2022-01-25
    • 2022-12-19
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2011-11-15
    • 2016-03-30
    相关资源
    最近更新 更多