Questions tagged «instanceof»

instanceof是一种运算符,支持某些面向对象的语言,包括Java,php和JavaScript。一般来说,它允许程序员检查作为其左操作数传递的对象是否是由右操作数指定的类的实例。

9
获取实例的类名?
如果我从中创建函数的基类是派生该实例类的基类,那么如何找到在Python中创建对象实例的类的名称? 我想也许检查模块可能在这里帮助了我,但似乎没有给我我想要的东西。除了解析__class__成员之外,我不确定如何获取此信息。



24
在Java中使用instanceof的性能影响
我正在开发一个应用程序,一种设计方法涉及大量使用instanceof操作员。虽然我知道OO设计通常会尝试避免使用instanceof,但这是另一回事了,这个问题与性能完全相关。我想知道是否会对性能产生影响?是一样快==吗? 例如,我有一个包含10个子类的基类。在采用基类的单个函数中,我检查该类是否为子类的实例并执行一些例程。 我想解决的另一种方法是改用“类型id”整数基元,并使用位掩码表示子类的类别,然后将子类“类型id”与位掩码进行位掩码比较。代表类别的常量掩码。 instanceofJVM 是否以某种方式对其进行了优化,使其速度更快?我想坚持使用Java,但应用程序的性能至关重要。如果以前曾走过这条路的人可以提供一些建议,那将很酷。我是否挑剔或专注于错误的东西进行优化?


10
为什么instanceof对某些文字返回false?
"foo" instanceof String //=> false "foo" instanceof Object //=> false true instanceof Boolean //=> false true instanceof Object //=> false false instanceof Boolean //=> false false instanceof Object //=> false // the tests against Object really don't make sense 数组文字和对象文字匹配... [0,1] instanceof Array //=> true {0:1} instanceof Object //=> true …



3
Java脚本!instanceof If语句
这是一个非常基本的问题,仅是为了满足我的好奇心,但是有没有办法做这样的事情: if(obj !instanceof Array) { //The object is not an instance of Array } else { //The object is an instance of Array } 这里的关键是能够使用NOT!在实例前面。通常我必须设置的方式是这样的: if(obj instanceof Array) { //Do nothing here } else { //The object is not an instance of Array //Perform actions! } 当我只是想知道对象是否为特定类型时,不得不创建else语句有点烦人。

11
有什么理由在生成.equals()时更喜欢getClass()而不是instanceof?
我正在使用Eclipse生成.equals()和.hashCode(),并且有一个标记为“使用'instanceof'比较类型”的选项。缺省是不选中此选项并用于.getClass()比较类型。有什么我.getClass()比我更喜欢的理由instanceof吗? 不使用instanceof: if (obj == null) return false; if (getClass() != obj.getClass()) return false; 使用instanceof: if (obj == null) return false; if (!(obj instanceof MyClass)) return false; 我通常会选中该instanceof选项,然后进入并删除“ if (obj == null)”检查。(这是多余的,因为空对象将始终失败instanceof。)是否有任何不好的主意?


8
Java:Instanceof和泛型
在查看通用数据结构中的值索引之前,我想看看它是否甚至this已被参数化为该类型的实例。 但是当我这样做时,Eclipse会抱怨: @Override public int indexOf(Object arg0) { if (!(arg0 instanceof E)) { return -1; } 这是错误消息: 无法针对类型参数E执行instanceof检查。请改用其擦除对象,因为泛型类型信息将在运行时删除 有什么更好的方法呢?


4
instanceof与getClass()
我看到使用getClass()和==运算符超过instanceOf运算符时性能有所提高。 Object str = new Integer("2000"); long starttime = System.nanoTime(); if(str instanceof String) { System.out.println("its string"); } else { if (str instanceof Integer) { System.out.println("its integer"); } } System.out.println((System.nanoTime()-starttime)); starttime = System.nanoTime(); if(str.getClass() == String.class) { System.out.println("its string in equals"); } else { if(str.getClass() == Integer.class) { System.out.println("its integer"); } …
114 java  class  instanceof 

6
如何在Dart中执行运行时类型检查?
Dart规范指出: 修饰的类型信息反映了运行时对象的类型,并且始终可以通过动态类型检查构造(其他语言中的instanceOf,casts,typecase等类似物)查询。 听起来不错,但没有instanceof类似运算符。那么我们如何在Dart中执行运行时类型检查?有可能吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.