당신은 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
와 함수는 현재 라이브러리에 존재하는 경우. 따라서 import
문 existsFunction
에서 사용할 수있는 함수는 false
을 반환합니다.