У меня есть следующий интерфейсКак сделать алмазный оператор Тип аргументов динамический в java?
public interface Splitter<T, V> {
V[] split(T arg);
}
Ниже реализация метода завод, который я использую, чтобы получить реализацию Splitter.
Factory Method Реализация
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>
) со стороны вызываемого абонента и вместо этого использовать некоторую переменную? Есть ли выход, через который они могут быть загружены из какого-либо внешнего файла свойств?
FYI: Я не уверен в его возможности на Java?
О каких жестко заданных параметрах вы говорите? И какую переменную вы хотите использовать? –
Я понятия не имею, о чем вы спрашиваете. Укажите код, который вы хотели бы иметь. –
@RohitJain Отредактировано вопросом – Vinit89