Есть ли простой, легкий/недорогой вызов, чтобы определить, поддерживает ли объект именованный метод? Итак, в этом obj.respondsTo было бы здорово.вызов метода, если он существует
dynamic _toJson(dynamic obj) {
return obj.respondsTo('toJson'))? obj.toJson() : obj;
}
class Foo {
String foo = "Foo.foo";
Bar bar = new Bar();
Map toJson() {
return {
"foo" : _toJson(foo),
"bar" : _toJson(bar)
};
}
}
Одним из вариантов было бы просто назвать его и поймать исключение noSuchMethod, но я думаю, что это плохая практика и дорого?