是否有一個簡單的,輕量級/便宜的調用來確定一個對象是否支持命名方法? 因此,在這個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例外,但我想這是不好的做法和昂貴?