How can I clone an Object (deep copy) in Dart?

Late to the party, but I recently faced this problem and had to do something along the lines of :-

class RandomObject {

  RandomObject(this.x, this.y);

  RandomObject.clone(RandomObject randomObject): this(randomObject.x, randomObject.y);

  int x;
  int y;
}

Then, you can just call copy with the original, like so:

final RandomObject original = RandomObject(1, 2);
final RandomObject copy = RandomObject.clone(original);

No as far as open issues seems to suggest:

https://github.com/dart-lang/sdk/issues/3367

And specifically:

... Objects have identity, and you can only pass around references to them. There is no implicit copying.


Darts built-in collections use a named constructor called "from" to accomplish this. See this post: Clone a List, Map or Set in Dart

Map mapA = {
    'foo': 'bar'
};
Map mapB = new Map.from(mapA);