我有一个类Field并且有一个copy()方法,我想将自引用传递给新对象,但是Dart编辑器似乎不允许。如何将自引用传递给像java这样的新对象?
class Field
Field copy() {
return new Field(this);
}
}
答案 0 :(得分:2)
做这些事情没有问题:
class Field {
String name;
Field(Field other) {
// init current with other
}
Field copy() => new Field(this);
}
答案 1 :(得分: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