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 回答