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

george koller picture george koller · Oct 14, 2012 · Viewed 24k times · Source

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.

Answer

Vadim Tsushko picture Vadim Tsushko · Oct 14, 2012

Recently Object got runtimeType getter. So, now we may not only compare type of object with another type, but actually get the class name of an object. As in:

myObject.runtimeType.toString()

Furthermore, in the current version of Dart, you can now skip toString operation and directly compare runtimeType of object with target type as in

myObject.runtimeType == int

or

myObject.runtimeType == Animal