-2
A
回答
3
使用Class#getInterfaces()運行是這樣的:
確定由類或接口 此對象表示實現的接口。
如果此對象表示一個類,則返回值是一個數組 ,其中包含的對象表示由 類實現的所有接口。數組中接口對象的順序對應於 由此對象表示的類的聲明的implements子句中的接口名稱的順序。例如,給定 聲明:
class Shimmer implements FloorWax, DessertTopping { ... }
假設s的值是微光的實例;所述 表達式的值:
s.getClass().getInterfaces()[0]
是類對象,表示接口FloorWax;和值的 :
s.getClass().getInterfaces()[1]
是表示接口DessertTopping的Class對象。
不過請注意,這種方法不適用於何處,而不是Shimmer
超類實現的接口的情況下返回true,例如如下:
public interface FloorWax { }
public interface DesertTopping { }
public class Shimmer implements implements FloorWax, DessertTopping { }
public class ShimmerChild extends Shimmer {}
public static void main(String[] args) {
// throws ArrayOutOfBoundsException
System.out.println(new ShimmerChild().getClass().getInterfaces()[0]);
}
在一個情況下,你會想要以下要返回界面,請使用@DylanMeeus中所述的方法Class#isAssignableFrom()
6
爲此,您可以使用類似
if(MarkerInterface.class.isAssignableFrom(otherClass.class))
想象一下,您有一個名爲MarkerInterface
的接口和一個OtherClass implements MarkerInterface
類。
你可以在主
if(MarkerInterface.class.isAssignableFrom(OtherClass.class))
{
System.out.println("Otherclass uses the MarkerInterface");
}
相關問題
- 1. 如何使用反射來確定本地類是否實現接口?
- 2. 確定類型實現的接口
- 3. TypeScript - 檢查類是否實現接口
- 4. 如何判斷一個類是否是java接口的實現
- 5. 確定一個類的超類是否實現了java中的某個接口
- 6. 確定一個類是否實現了一個非常特定的接口
- 7. C#如何檢查一個類是否實現泛型接口?
- 8. 確定一個類是否實現了一個接口而不引用它
- 9. 檢查類是否在ActionScript 3.0中實現特定接口
- 10. 標記接口,實現與導入
- 11. 如何確定一個類型實現特定的泛型接口類型,
- 12. 是否有即使父類實現相同的接口實現子類中的接口任何好處
- 13. 是否有任何Smalltalk類接口的實現?
- 14. PHP檢查是否實際類實現接口
- 15. 實現接口的類和接口之間是否有任何關係?
- 16. 通過實現一個接口,類是否成爲該接口的「類型」?
- 17. 類設計:類實現接口實現另一個接口
- 18. 子類是否導致類停止實現接口?
- 19. 繼承類是否自動從其基類實現接口?
- 20. 如何識別實現接口的類?
- 21. 測試對象是否實現接口
- 22. Oracle.DataAccess.Client.OracleDataReader(ODP.Net)是否實現IDataReader接口?
- 23. 定義接口中的類實現
- 24. 綁定類型暗示接口實現
- 25. 如何實現確認(是/否)DialogPreference?
- 26. 如何昂貴的是拳擊明確地實現接口
- 27. 多次實現協變接口:這種行爲是否正確定義?
- 28. 如何檢索父接口的實現類/接口?
- 29. 實現接口嚮導 - 如何找到接口的「類型庫」?
- 30. 匿名類實現接口
爲什麼減去它是一個面試問題,我想澄清一下。是否有意義減號 – suresh
您沒有顯示任何先前研究的跡象。我們的想法是,我們總是幫助你「更進一步」 - 假設你試圖自己完成第一步。在這裏丟掉一個問題「請向我解釋」並不算作「之前的研究」。 – GhostCat
@GhostCat我試圖在谷歌找到解決方案,但我沒有找到任何解決方案,在結束選項留在了stackoverflow社區。 可能是我沒有太多關於這個話題的研究。 – suresh