У меня есть 2 класса Java A и B; они оба расширяют другой Java-класс, например, C. Внутри другого класса У меня есть объект класса C, который передается в качестве аргумента метода, и я должен использовать этот объект (с соответствующим броском), чтобы установить поля А и В, такие как:JAVA избегать дублирования кода при литье в классы родства
if(C instanceof A){
((A)C).setAField1(AField1);
...
((A)C).setAFieldN(AFieldN);
}else if (C instanceof B){
((B)C).setBField1(BField1);
...
((B)C).setBFieldN(BFieldN);
}
У меня для установки тех же полей, у меня есть те же вызовы методам setter, но я должен делать разные трансляции. Что мне нужно сделать, чтобы избежать повторений кода?
PS: Я не могу поместить эти поля в класс C, потому что он расширен другими классами, которые им не нужны.
Без использования интерфейсов повторение кода - единственный способ? – MarCorte