簡體   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