Как я могу решить мою проблему без generi c в AbstractUsefulService?
Вы не можете, если собираетесь передать calculator
в AbstractUsefulService
.
Вам необходимо знать, какой тип объекта будет принимать calculator.calculateValue
.
Единственный способ сделать это - сохранить ссылку в классе ImplementationOfAbstractUsefulService
:
class ImplementationOfAbstractUsefulService extends AbstractUsefulService{
private final SecondChildCalculator secondChildCalculator;
public ImplementationOfAbstractUsefulService(
SecondChildCalculator calculator
) {
super(calculator);
}
public void doJob(){
secondChildCalculator.calculateValue(new SecondChild());
}
}