草庐IT

InstanceOf

全部标签

kotlin - 如何在 kotlin 中检查 "instanceof "类?

在kotlin类中,我将方法参数作为对象(参见kotlin文档here)用于类类型T。作为对象,我在调用方法时传递了不同的类。在Java中,我们可以使用对象的instanceof来比较类是哪个类。所以我想在运行时检查和比较它是哪个类?如何查看kotlin中的instanceof类? 最佳答案 使用是。if(myInstanceisString){...}或相反的!isif(myInstance!isString){...} 关于kotlin-如何在kotlin中检查"instanceof

javascript - 为什么 instanceof 对某些文字返回 false ?

"foo"instanceofString//=>false"foo"instanceofObject//=>falsetrueinstanceofBoolean//=>falsetrueinstanceofObject//=>falsefalseinstanceofBoolean//=>falsefalseinstanceofObject//=>false12.21instanceofNumber//=>false/foo/instanceofRegExp//=>true//thetestsagainstObjectreallydon'tmakesense数组字面量和对象字面量匹配.

go - Golang 中的 "instanceof"等效项

我有这些结构:typeEventinterface{Accept(EventVisitor)}typeLikestruct{}func(l*Like)Accept(visitorEventVisitor){visitor.visitLike(l)}如何测试event是Like实例?funcTestEventCreation(t*testing.T){event,err:=New(0)iferr!=nil{t.Error(err)}ifreflect.TypeOf(event)!=Like{t.Error("Assertionerror")}}我明白了:TypeLikeisnotanex

java - 为什么不能将 "Class"变量传递给 instanceof?

为什么这段代码不能编译?publicbooleanisOf(Classclazz,Objectobj){if(objinstanceofclazz){returntrue;}else{returnfalse;}}为什么我不能将类变量传递给instanceof? 最佳答案 instanceof运算符适用于引用类型,如Integer,而不适用于对象,如newInteger(213)。你可能想要类似的东西clazz.isInstance(obj)旁注:如果你写,你的代码会更简洁publicbooleanisOf(Classclazz,Ob

java - Java中有类似instanceOf(Class<?> c)的东西吗?

我想检查一个对象o是C类的实例还是C的子类。例如,如果p属于Point类,我希望x.instanceOf(Point.class)为true并且x.instanceOf(Object.class)为true。我希望它也适用于盒装原始类型。例如,如果x是Integer那么x.instanceOf(Integer.class)应该是true。有这种事吗?如果没有,我该如何实现这样的方法? 最佳答案 Class.isInstance做你想做的事。if(Point.class.isInstance(someObj)){...}当然,如果你可

java - 如何使用 Scala 进行 instanceof 检查(测试)

我正在尝试将ScalaTest合并到我的Java项目中;用ScalaTests替换所有JUnit测试。在某一时刻,我想检查Guice的Injector是否注入(inject)了正确的类型。在Java中,我有一个这样的测试:publicclassInjectorBehaviour{@TestpublicvoidshouldInjectCorrectTypes(){Injectorinjector=Guice.createInjector(newModuleImpl());Househouse=injector.getInstance(House.class);assertTrue(hou

java - 'instanceof' 运算符对接口(interface)和类的行为不同

我想知道Java中instanceof运算符的以下行为。interfaceC{}classB{}publicclassA{publicstaticvoidmain(Stringargs[]){Bobj=newB();System.out.println(objinstanceofA);//GivescompilererrorSystem.out.println(objinstanceofC);//Givesfalseasoutput}}为什么会这样?interfaceC和classB之间没有关系,但它给出false而在objinstanceofA的情况下它给出编译器错误?

java - 在 Java 中避免使用 instanceof

拥有“instanceof”操作链被认为是“代码异味”。标准答案是“使用多态性”。在这种情况下我该怎么做?基类有许多子类;他们都不在我的控制之下。Java类Integer、Double、BigDecimal等情况类似。if(objinstanceofInteger){NumberStuff.handle((Integer)obj);}elseif(objinstanceofBigDecimal){BigDecimalStuff.handle((BigDecimal)obj);}elseif(objinstanceofDouble){DoubleStuff.handle((Double)

Java:Instanceof 和泛型

在查看值索引的通用数据结构之前,我想看看它是否是this已参数化为的类型的实例。但是当我这样做时Eclipse会提示:@OverridepublicintindexOf(Objectarg0){if(!(arg0instanceofE)){return-1;}这是错误信息:CannotperforminstanceofcheckagainsttypeparameterE.UseinsteaditserasureObjectsincegenerictypeinformationwillbeerasedatruntime有什么更好的方法? 最佳答案

java - 在生成 .equals() 时,有什么理由更喜欢 getClass() 而不是 instanceof?

我正在使用Eclipse生成.equals()和.hashCode(),并且有一个选项标记为“使用'instanceof'来比较类型”。默认情况下未选中此选项并使用.getClass()来比较类型。有什么理由我应该更喜欢.getClass()而不是instanceof?不使用instanceof:if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;使用instanceof:if(obj==null)returnfalse;if(!(objinstanceofMyClass))returnfalse;我一般