[英]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.