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.to
By using the is
and is!
operators, like this:
if (someObject is T)
From the documentation:
The
is
andis!
operators are handy for checking types. The result ofobj is T
is true ifobj
implements the interface specified byT
. For example,obj is Object
is always true.
Using the Mirrors API (see this example):
Expect.equals('T', someObject.simpleName)
Here is a simple explanation with a solution.
You have:
Object obj =t1
;
where t1
is an object of class T.
And you have other object T called t
.
T t = new T()
;
How to check if obj
is the same type of t
?
Solution:
if(obj is t)
print('obj is typeof t')
else print('obj is not typeof t')
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