Search code examples
classdartdart-mirrors

How to tell if an object is an instance of a class


How can I determine whether an object is of a class or not in the Dart language?

I'm looking to do something like the following:

if (someObject.class.toString() == "Num") {
    ...
}

And what is the returned value type? Will it have to be a String?


The mirror library has been up and down and seems to be subject to rapid change right now, as the one thing I did find simply did not work as shown.


Solution

    • By using the is and is! operators, like this:

      if (someObject is T)
      

      From the documentation:

      The is and is! operators are handy for checking types. The result of obj is T is true if obj implements the interface specified by T. For example, obj is Object is always true.

    • Using the Mirrors API (see this example):

      Expect.equals('T', someObject.simpleName)