2012-12-21 3 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); 

existsFunction 검사 만 functionName와 함수는 현재 라이브러리에 존재하는 경우. 따라서 importexistsFunction에서 사용할 수있는 함수는 false을 반환합니다.