6
Dartで関数またはメソッドの存在をテストし、呼び出しを試みずにNoSuchMethodErrorエラーをキャッチする方法はありますか?私はfunc_name
という名前の関数が存在するかどうかをテストするためにダーツで関数の存在をテストするにはどうすればよいですか?
if (exists("func_name")){...}
のようなものを探しています 。 ありがとうございます!
Dartで関数またはメソッドの存在をテストし、呼び出しを試みずにNoSuchMethodErrorエラーをキャッチする方法はありますか?私はfunc_name
という名前の関数が存在するかどうかをテストするためにダーツで関数の存在をテストするにはどうすればよいですか?
if (exists("func_name")){...}
のようなものを探しています 。 ありがとうございます!
あなたは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
を返します。