是否可以测试值是否是可以调用的函数?我可以轻松地测试null,但是之后我不知道如何确保传入的参数实际上是一个函数?
void myMethod(funcParam)
{
if (funcParam != null)
{
/* How to test if funcParam is actually a function that can be called? */
funcParam();
}
}
最佳答案
void myMethod(funcParam) {
if(funcParam is Function) {
funcParam();
}
}
当然,仅当参数列表匹配时,对
funcParams()
的调用才有效-is Function
不会对此进行检查。如果涉及参数,则可以使用typedefs来确保这一点。typedef void MyExpectedFunction(int someInt, String someString);
void myMethod(MyExpectedFunction funcParam, int intParam, String stringParam) {
if(funcParam is MyExpectedFunction) {
funcParam(intParam, stringParam);
}
}