次のインターフェースがあります
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);
クライアント側のコードと実装との密結合を避けたい。ハードコーディングされた Type パラメータを回避する方法はありますか。つまりSplitter<Company, Department>
、呼び出し側で Company と Department ( ) を使用せず、代わりに変数を使用する方法はありますか? 外部プロパティ ファイルからロードできる方法はありますか?
参考までに: Java での実現可能性についてはよくわかりません。