我正在使用对象数组,而对象之一是一个函数。我尝试以正常方式调用它,但似乎不起作用。我也尝试过强制类型转换,无论如何也没用。
List<Object> list = ['some other type of data', (String p) { /* do something */}];
list[1]('some string'); // Expression doesn't evaluate to a function
我需要以某种方式调用列表索引1的函数。
答案 0 :(得分:1)
这可能会做您想要的
(list[1] as void Function(String))('some string');
或者只是
(list[1] as Function)('some string');
答案 1 :(得分:0)
我刚刚找到了解决方案。我已经尝试过以Java方式进行类型转换,但似乎在dart上不起作用。
这就是我所做的
List<Object> list = ['some other type of data', (String p) { /* do something */}];
Function f = list[1];
f('some string'); // This worked!
答案 2 :(得分:0)
您还可以像这样将列表类型更改为动态:
List<dynamic> list = ['some other type of data', (String p){ print('hi-$p');}];
list[1]('dart'); //Output is: hi-dart