1

JSObject.equalsのドキュメントには次のように書かれています。

2 つの JSObject オブジェクトが同じインスタンスを参照しているかどうかを判断します。

対照的に、次の式は次のように評価されfalseます。

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

私は期待していたtrue...

4

1 に答える 1

0

ウィンドウを説明する newを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より明確にする方法を使用するように更新されました。

于 2012-05-01T18:13:31.103 に答える