繁体   English   中英

@override toString 方法在 Flutter Dart class 中做了什么?

[英]What does @override toString method do in a Flutter Dart class?

下面model class中,重写toString()方法达到什么目的?

class User {
  final int id;
  String name, email, token;

  User(this.id, this.name, this.email, this.token);

  User.fromJson(dynamic json) : this.id = json['id'] {
    this.name = json['name'];
    this.email = json['email'];
    this.token = json['token'];
  }

  dynamic toJson() => {'id': id, 'name': name, 'email': email, 'token': token};

  @override
  String toString() {
    return toJson().toString();
  }
}

toString()方法的目的是提供调用它的任何 object 的文字表示,或将 object 转换为字符串(例如将原始类型转换为字符串)。 对于用户定义的 class,它可能因您的用例而异。 您可能希望将 object 打印到控制台。 object 上的简单打印命令不会为您提供任何有用的信息。 但是,您可以使用 toString() 方法并将其转换为更易于理解的版本。 例子

@override
String toString() {
    return "($someProperty,$someOtherProperty)";
}

这将返回当时设置的 object 的任何属性。 另一个(虽然不好)目的可能是比较相同 class 的两个对象。与上面的示例类似,如果两个对象的toString()方法的 output 是相同的。 同样,这完全取决于您的用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM