JSObject.equals() говорит, что JSObject.getWindow() не равно JSObject.getWindow()
Документация JSObject.equals гласит:
Определяет, ссылаются ли два объекта JSObject на один и тот же экземпляр.
В противоположность этому следующее выражение оценивает false
:
JSObject.getWindow(applet).equals(JSObject.getWindow(applet))
Я ожидал true
...
1 ответ
Похоже, что getWindow
возвращает новый JSObject
который описывает окно. Так что каждый звонок getWindow
это новый экземпляр, но с теми же данными, поэтому equals возвращает false. Оба объекта JSO описывают окно, но не являются одним и тем же объектом.
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
способ прояснить ситуацию.