问题
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.
回答1:
- By using the - isand- is!operators, like this:- if (someObject is T)- From the documentation: - The - isand- is!operators are handy for checking types. The result of- obj is Tis true if- objimplements the interface specified by- T. For example,- obj is Objectis always true.
- Using the Mirrors API (see this example): - Expect.equals('T', someObject.simpleName)
回答2:
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
来源:https://stackoverflow.com/questions/12879877/how-to-tell-if-an-object-is-an-instance-of-a-class