我有以下接口如何使鑽石運算符在Java中動態類型參數?
public interface Splitter<T, V> {
V[] split(T arg);
}
下面是我使用來獲得分離器實現工廠方法實現。
工廠方法實現
public static <T, V> Splitter<T, V> getSplitter(Class<T> key1, Class<V> key2) {
if (key1 == Company.class && key2 == Department.class)
return (Splitter<T, V>) new CompanySplitterImpl();
// more cases
}
以下是我在客戶端調用
Splitter<Company, Department> split = getSplitter(Company.class, Department.class);
我想避免與執行客戶端代碼緊密耦合該編譯罰款。有沒有辦法避免硬編碼類型參數,即避免在被調用端使用公司和部門(Splitter<Company, Department>
)並使用某些變量?有沒有一種方法可以通過它們從一些外部屬性文件加載?
僅供參考:我不確定它在Java中的可行性嗎?
你在說什麼硬編碼類型參數?你想使用什麼變量? –
我不知道你在問什麼。請提供您想要的代碼。 –
@RohitJain編輯問題 – Vinit89