Строка по умолчанию для объектов, эквивалентная toString в Java?

Я только что взглянул на учебник 3º от дротика, создающий компонент рейтинга. Мне было интересно, есть ли тот же метод, который вызывается при преобразовании объекта в строку, что-то похожее на toString в Java.

Например:

MyClass myObject = new MyClass();
System.out.println(myObject);

Будет вызывать MyClass.toString(), если он перезаписан, иначе будет вызывать его родитель до тех пор, пока не будет достигнут java.lang.Object, дающий значение toString по умолчанию.

Я нахожу вид уродливым (полностью субъективным), делая:

<span ng-repeat="star in cmp.stars" > {{star.toString()}} </span>

Я бы предпочел сделать:

    <span ng-repeat="star in cmp.stars" > {{star}} </span>

И дайте реализацию того, как я хочу, чтобы это отображалось в методе averwrite. Это возможно?


person Javier Mr    schedule 07.04.2014    source источник


Ответы (3)


Да, это работает так для print, интерполяции строк или угловых усов.

При переопределении метода String toString() для вашего объекта отображаемое значение будет результатом этого вызова toString(). Если в иерархии классов не определено toString(), будет вызван toString() из Object (который вернет Instance of 'MyClass' для class MyClass{}).

person Alexandre Ardhuin    schedule 07.04.2014
comment
Не могли бы вы представить, как это будет сделано. У меня только Instance of 'MyClass'. - person Javier Mr; 08.04.2014
comment
А, ну ладно. Я думал, вы имели в виду, что метод перезаписи был печатью... Спасибо. - person Javier Mr; 08.04.2014

Если у вас есть что-то вроде этого:

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'

Я думаю, это может быть то, что вы ищете.

person dgp    schedule 08.04.2014

Вам может быть интересно посмотреть, как компонент Rating был реализован в проекте пользовательского интерфейса Angular Dart. Проверьте это.

Сергей.

person akserg    schedule 09.04.2014
comment
Вау, классный компонент. Я все еще нахожусь в серии уроков по угловым, но очевидно, что следующим будет угловой интерфейс дротика. - person Javier Mr; 09.04.2014