5

我是 java 新手,我一直在做这个练习,但一直收到错误:不能取消引用 int。我看到了几个类似的问题,但仍然无法弄清楚我自己的情况。这是完整的代码:

package inclass;

class OneInt {
  int n;

  OneInt(int n) {
    this.n = n;
  }

  @Override public boolean equals(Object that) {
    if (that instanceof OneInt) {
        OneInt thatInt = (OneInt) that;
        return n.equals(thatInt.n); // error happens here
    } else {
        return false;
    }
  }

  public static void main(String[] args) {
    Object c = new OneInt(9);
    Object c2 = new OneInt(9);
    System.out.println(c.equals(c2));
    System.out.println(c.equals("doesn't work"));
  } 
}

非常感谢你帮我解决了这个小麻烦。

4

2 回答 2

7

equals是一个类的方法。int是一个原始的,而不是一个类。只需使用==

return n == thatInt.n;
于 2013-04-07T00:06:41.710 回答
4

要比较ints,只需使用==运算符:

if (n == thatInt.n)

请注意,这int不是一个类,因此您永远不能.运算符与int变量一起使用。

于 2013-04-07T00:06:38.860 回答