簡體   English   中英

如何知道哪個類實現了接口?

[英]How to know which class implemented the interface?

(Java入門)

我有一個愚蠢的疑問。

這是代碼

XPathFactory xpathFactory = XPathFactory.newInstance(); 

XPathFactory是absrtact類,如何創建對象? 這里有什么聯系嗎?

XPath xpath = xpathFactory.newXPath();

XPath是一個接口,因此在調用xpathFactory.newXPath()時,它是否返回實現了XPath接口的類的對象? 這是正確的嗎 ?

我們如何知道哪個類實現了XPath接口?

誰能幫助我了解這一點?

謝謝

首先,沒關系-重要的是某個類確實起作用(它可能是匿名內部類)。 其次,可以使用getClass()進行查找。 喜歡,

System.out.println(xpath.getClass().getCanonicalName());

它為您提供了XPathFactory某些實現的實例,而后者又為您提供了XPath一些實現的實例。

您可以通過getClass()獲得有關實際實現的信息,但關鍵是-您不必在意。 這就是接口的用途-隱藏所使用的實際實現,只給您依賴的合同

XPathFactory.newInstance()static方法。 它不能返回XPathFactory基類本身的實例(因為它是抽象的),但是可以返回XPathFactory的某些子類的實例。

如您所說, xpathFactory.newXPath()返回實現XPath接口的類的實例。 您不必關心實例化了哪個實際的類(這是實現細節),但是您可以通過調用xpath.getClass()獲得該信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM