JSObject.equals的文档说:
确定两个 JSObject 对象是否引用同一个实例。
相反,以下表达式的计算结果为false
:
JSObject.getWindow(applet).equals(JSObject.getWindow(applet))
我已经预料true
到...
JSObject.equals的文档说:
确定两个 JSObject 对象是否引用同一个实例。
相反,以下表达式的计算结果为false
:
JSObject.getWindow(applet).equals(JSObject.getWindow(applet))
我已经预料true
到...
似乎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
方法使其更清晰。