Я новичок в концепции загрузчика сервисов, но мне нужно написать домашнее задание, используя его. Моя задача - написать реализацию SimpleSalaryCalculator
. У меня есть фабрика, которая была предоставлена мне в качестве шаблона. Я могу изменить его, но идея должна остаться прежней, и следует использовать @AutoService
@AutoService(SalaryCalculatorFactory.class)
public final class SimpleSalaryCalculatorFactory implements SalaryCalculatorFactory {
@Override
public SalaryCalculator createCalculator(int numberOfEmployees) {
return new SimpleSalaryCalculator(numberOfEmployees);
}
}
И у меня есть основной класс, , который мне не разрешено изменять
public final class Launcher {
public static void main() {
SalaryCalculatorFactory factory = new SimpleSalaryCalculatorFactory();
SalaryCalculator calculator = factory.createCalculator(100);
System.out.println(calculator.calculate(30));
}
}
Итак, я написал SimpleSalaryCalculator
public class SimpleSalaryCalculator {
private MaternityLeaveService maternityLeaveService;
private TaxCalculatorService taxCalculatorService;
public SimpleSalaryCalculator(numberOfEmployees) {
.....
}
public double calculate(int forNumberOfDays) {
....
}
}
Дело в том, что в моей реализации я использую некоторые сервисы, которые хочу добавить через конструктор. Если я не могу изменить свой класс Launcher
, как я могу заставить guice работать вместе с ServiceLoader
?