2

クラス Field があり、copy() メソッドがあります。自己参照を新しいオブジェクトに渡したいのですが、Dart エディターは許可されていないようです。javaのような新しいオブジェクトに自己参照を渡すにはどうすればよいですか?

class Field 
   Field copy() {
       return new Field(this); 
   }    
}
4

2 に答える 2

2

そのようなことをしても問題ありません:

class Field {
  String name;
  Field(Field other) {
    // init current with other
  }
  Field copy() => new Field(this); 
}
于 2013-08-27T16:21:47.770 に答える
1

開始中括弧が欠落しているようで、コンストラクターがありません。それ以外に、これが機能しない理由はありません。

class Field {    
  Field ref;

  Field(this.ref);

  Field copy() {
    return new Field(this);
  }
}

Field a = new Field(null);
Field b = a.copy();
print(identical(a, b.ref)); // true
于 2013-08-27T16:23:46.257 に答える