JSObject.equals的文档说:
确定两个JSObject对象是否引用同一个实例。
相反,以下表达式的计算结果为false
:
JSObject.getWindow(applet).equals(JSObject.getWindow(applet))
我原以为true
...
答案 0 :(得分: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));
}
}
这打印为false,因为即使对象中的对象具有相同的值,它们仍然是不同的对象。
编辑:已更新以使用get
方法更清晰。