How can i test the existence of a function in Dart?


Is there a way to test the existence of a function or method in Dart without trying to call it and catch a NoSuchMethodError error?
I am looking for something like

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

to test whether a function namedfunc_nameexists.
Thanks in advance!


You can do that with 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

bool existsMethodOnObject(Object o, String method) => reflect(o).type.methods

existsFunction only tests if a function with functionName exists in the current library. Thus with functions available by import statement existsFunction will return false.

Answered By – Alexandre Ardhuin

Answer Checked By – Mary Flores (FlutterFixes Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *