繁体   English   中英

Java的对象上的isInstance?

[英]Java's isInstance on Object?

我有一个名为handlerObject和一个名为protocolInterfaceClass的实例。 我想知道handler实现protocolInterface 据我所知,这不可能不依靠反思。

if (handler instanceof protoInterface.getClass())

导致产生大量解析错误, ')' expected illegal start of expression ,等等。所以我想尝试一下isInstance()方法,但是由于handler的类型为Object ,因此调用了ObjectIsInstance() ,它本身没有知识。 因此,即使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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM