![](/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.