如何判断一个对象是一个类的实例(How to tell if an object is an ins

2019-08-01 10:33发布

如何确定一个对象是否是一个类或者不达特语言?

我希望做类似如下:

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

什么是返回值的类型? 它必须是一个字符串?


镜子库一直向上和向下,似乎现在就受到迅速变化,因为有一件事我没有找到,如图根本没有工作。

Answer 1:

  • 通过使用isis! 运营商,像这样:

     if (someObject is T) 

    从文档 :

    isis! 运营商方便检查类型。 的结果obj is T ,如果为真obj实现由指定的接口T 。 例如, obj is Object始终是真实的。

  • 使用镜子API (见本例中 ):

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


Answer 2:

近来Object得到runtimeType吸气。 所以,现在我们不仅可以比较其他类型的对象类型,但实际上得到一个对象的类名 。 如:

myObject.runtimeType.toString()

此外,飞镖的当前版本,现在可以跳过toString操作和直接比较runtimeType与目标对象的类型,如

myObject.runtimeType == int

要么

myObject.runtimeType == Animal


文章来源: How to tell if an object is an instance of a class