是否可以在 Dart 中使用像 Java 这样的 .equals() 方法

Is it possible to use .equals() method like Java in Dart

我是一名 Java 开发人员,也是 Dart 的新手。

当我在 Dart 中比较两个对象时,它只有 == 运算符可以帮助我比较 Dart 中两个对象的两个逻辑内存地址。如何在不准备下面这段代码的情况下将两个对象比较为 Java 一样?准备实体的 class 让我很累,所以我想知道 Dart 有什么办法吗?

class MyClass {
    final MySubClass mySubClass;

    MyClass({this.mySubClass});

    bool equals(Object other) => identical(this, other) || other is MyClass && runtimeType == other.runtimeType && something.equals(other.mySubClass);
}

class MySubClass {
    final String something;

    MySubClass({this.something});

    bool equals(Object other) => identical(this, other) || other is MySubClass && runtimeType == other.runtimeType && something == other.something;
}

Dart 语言没有 equals 方法。根据this article,我必须使用Equatable Package

@override
  bool operator ==(Object other) =>
      identical(this, other) ||
          other is Class &&
              runtimeType == other.runtimeType &&
              id == other.property;

@override
int get hashCode => property.hashCode;