![](/img/trans.png)
[英]What is the VB equivalent of Java's instanceof and isInstance()?
[英]Java's isInstance on Object?
我有一个名为handler
的Object
和一个名为protocolInterface
的Class
的实例。 我想知道handler
实现protocolInterface
。 据我所知,这不可能不依靠反思。
if (handler instanceof protoInterface.getClass())
导致产生大量解析错误, ')' expected
illegal start of expression
,等等。所以我想尝试一下isInstance()
方法,但是由于handler
的类型为Object
,因此调用了Object
的IsInstance()
,它本身没有知识。 因此,即使handler
实现了protocolInteface
,它也会返回false。
我该如何调和? 处理此问题的两种方法似乎是互斥的。
有一个isInstance()
的方法Class
会告诉你,如果一个给定的对象是目标类型,例如一个实例:
if (protoInterface.getClass().isInstance(handler)) { ... }
尝试这个:
if(protoInterface.getClass().isAssignableFrom(handler.getClass())
Class handlerClass = handler.getClass();
Class protocolClass = protocolInterface.getClass();
if (protocolClass.isAssignableFrom(handlerClass)) {
... // yadda yadda yadda
}
显然,您可以将它设为单线; 我认为这使它更加清晰。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.