Null aware function invocation operator
Solution 1:
Using the call
method, you can achieve what you want with:
nullableFunctionInstance?.call(blah)
There's also the apply
method if you want to pass arguments.
Solution 2:
If you have a Function Object , you can use the call
method and send all the parameters to that which works exactly as calling the function. Here , you can use the null aware member access operator.
void myFun(int a , int b){...}
var myVar = myFun ;
call
The function myVar will only get called if its not null as shown below.
myVar?.call( arg1 , arg2 );
apply
If your function is dynamic or you wish to control which function is being called at run time , you can use the apply
static method of Function
like so :
Function.apply(myVar , [arg1 , arg2]);
apply
takes the function and a List
of parameters that will be sent to the function.
Read more about call and apply :