2012-12-21 13 views

答えて

6

あなたはmirrors APIであることを行うことができます。

import 'dart:mirrors'; 

class Test { 
    method1() => "hello"; 
} 

main() { 
    print(existsFunction("main")); // true 
    print(existsFunction("main1")); // false 
    print(existsMethodOnObject(new Test(), "method1")); // true 
    print(existsMethodOnObject(new Test(), "method2")); // false 
} 

bool existsFunction(String functionName) => currentMirrorSystem().isolate 
    .rootLibrary.functions.containsKey(functionName); 

bool existsMethodOnObject(Object o, String method) => reflect(o).type.methods 
    .containsKey(method); 

existsFunctionfunctionName持つ関数は、現在のライブラリに存在する場合にのみテスト。したがって、importステートメントexistsFunctionで利用可能な関数はfalseを返します。

関連する問題