gpt4 book ai didi

dart - 如何在 Dart 中测试函数的存在?

转载 作者:行者123 更新时间:2023-12-04 12:10:21 24 4
gpt4 key购买 nike

有没有办法在 Dart 中测试函数或方法的存在,而无需尝试调用它并捕获 NoSuchMethodError 错误?
我正在寻找类似的东西

if (exists("func_name")){...}

测试是否名为 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 .

关于dart - 如何在 Dart 中测试函数的存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13994443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com