1

JSObject.equals的文档说:

确定两个 JSObject 对象是否引用同一个实例。

相反,以下表达式的计算结果为false

JSObject.getWindow(applet).equals(JSObject.getWindow(applet))

我已经预料true到...

4

1 回答 1

0

似乎getWindow返回一个JSObject描述窗口的新的。所以每次调用getWindow都是一个新实例,但数据相同,所以 equals 返回 false。两个 JSObject 都描述了窗口,但不是同一个对象。

public class MyClass
{
  int a;
  public MyClass(int arg)
  {
    a = arg;
  }

  public MyClass getMyClass()
  {
    return new MyClass(a);
  }

  public static void main(String args[])
  {
    MyClass parent = new MyClass(1);
    MyClass obj1 = parent.getMyClass();
    MyClass obj2 = parent.getMyClass();
    System.out.println(obj1.equals(obj2));        
  }
}

这打印错误,因为即使对象在其中具有相同的值,它们仍然是不同的对象。

编辑:更新以使用一种get方法使其更清晰。

于 2012-05-01T18:13:31.103 回答