对象的默认stringify,相当于Java的toString?

Jav*_* Mr 9 dart angular-dart

我刚刚看一下dart的3º教程,创建了评级组件.我想知道在对字符串进行字符串化时是否有相同的方法,类似于Java的toString.

例如:

MyClass myObject = new MyClass();
System.out.println(myObject);
Run Code Online (Sandbox Code Playgroud)

如果覆盖将调用MyClass.toString(),否则将调用它的父级,直到达到java.lang.Object,给出默认的toString.

我发现有点丑陋(完全主观)做:

<span ng-repeat="star in cmp.stars" > {{star.toString()}} </span>
Run Code Online (Sandbox Code Playgroud)

我宁愿这样做:

    <span ng-repeat="star in cmp.stars" > {{star}} </span>
Run Code Online (Sandbox Code Playgroud)

并实现我希望它以一种averwritten方法显示的方式.这可能吗?

Ale*_*uin 9

是的,它的工作原理如下print,字符串插值或角度胡须.

通过覆盖String toString()对象上的方法,显示的值将是此toString()调用的结果.如果没有toString()在类层次结构中定义的toString()Object将被调用(这将返回Instance of 'MyClass'class MyClass{}).


dgp*_*dgp 7

如果您有这样的事情:

class MyClass {
    String data;

    MyClass(this.data);

    @override
    String toString() {
        return data;
    }
}

MyClass myObject = new MyClass("someData");
print(myObject); // outputs "someData", not 'Instance of MyClass'
Run Code Online (Sandbox Code Playgroud)

我认为这可能是您想要的。