2014-07-24 47 views
0

我們如何能夠使用RowSetProvider類創建RowSetFactory接口的實例?RowSetFactory實現子類

RowSetFactory rsfactory=RowSetProvider.newFactory(); 

什麼是RowSetFactory接口的實現子類以及它在哪個包中可用?

+0

你爲什麼在意?這只是JDK中工廠模式的另一個實例。有數百個。 NOYB的實現類是什麼。 – EJP

+0

我不知道如果沒有關心回合我就無法繼續前進。 – jcool

+0

這實際上並不能回答我的問題。你爲什麼認爲喲不能繼續前進?實現類的名稱不會對您的編碼產生任何影響。至少它不應該,如果這樣做,你做錯了。 – EJP

回答

2

實現類取決於類路徑上可用的服務實現(以及它們的順序)。這在RowSetProvider.newFactory()中有記錄:

創建一個RowSetFactory實現的新實例。此方法使用以下查找以確定在RowSetFactory實現類加載:

  • 系統屬性javax.sql.rowset.RowSetFactory。例如:

    -Djavax.sql.rowset.RowSetFactory=com.sun.rowset.RowSetFactoryImpl 
    
  • ServiceLoader API。 ServiceLoader API將在運行時可用的jar文件中查找文件META-INF/services/javax.sql.rowset.RowSetFactory中的類名。例如,有在RowSetFactory實施com.sun.rowset.RowSetFactoryImpl加載,在META-INF/services/javax.sql.rowset.RowSetFactory的條目將是:

    com.sun.rowset.RowSetFactoryImpl 
    
  • 平臺默認的RowSetFactory實例。

如果在類路徑多個實現並要指定要加載的執行,那麼你可以使用newFactory(String factoryClassName, ClassLoader cl)

+0

感謝您的回答。這就是我需要的。 – jcool