簡體   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