Получить экземпляр по имени во время выполнения, используя guice - PullRequest
0 голосов
/ 18 мая 2018

У меня есть следующие классы.

Car{}

TwoWheeler exteends Car{}

FourWheeler extends Car{}

RandomClass{
        CarFactory carfactory

        //Inject factory using guice
        public RandomClass(Carfactory carfactory){
          this.carfactory=  carfactory;
        }

        void doSometing(String carType){
          carfactory.getCar(CarType)

        }

  }

  CarFactory{
        Map<String,Car>  carTypeToCarMap;
        Car getCarByType(String type){
                    return carTypeToCarMap.get(type);
     }
}

Могу ли я избежать создания фабрики и получить экземпляр guice на основе carType?

1 Ответ

0 голосов
/ 19 мая 2018
@AutoValue
public abstract class Car {
    public abstract Map<String> getCarType();

    public static Car.Builder builder() { return new AutoValue_Car.Builder(); }

    @AutoValue.Builder
    public abstract static class Builder {
        public abstract PatientDto.Builder setCarType(String carType);

        public abstract Car build();
    }
}
...