Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用guice在运行时按名称获取实例_Guice - Fatal编程技术网

使用guice在运行时按名称获取实例

使用guice在运行时按名称获取实例,guice,Guice,我有以下课程 Car{} TwoWheeler exteends Car{} FourWheeler extends Car{} RandomClass{ CarFactory carfactory //Inject factory using guice public RandomClass(Carfactory carfactory){ this.carfactory= carfactory; }

我有以下课程

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);
     }
}
Car{}
两轮车
四轮车延伸车{}
随机类{
汽车厂汽车厂
//使用guice注入工厂
公共类(汽车工厂汽车工厂){
这个.carfactory=carfactory;
}
无效剂量测定(字符串类型){
carfactory.getCar(CarType)
}
}
汽车制造厂{
地图carTypeToCarMap;
Car getCarByType(字符串类型){
返回carTypeToCarMap.get(type);
}
}
我是否可以避免创建工厂并根据carType从guice获取实例?

@AutoValue
@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();
    }
}
公共抽象类汽车{ 公共抽象映射getCarType(); public static Car.Builder(){return new AutoValue_Car.Builder();} @AutoValue.Builder 公共抽象静态类生成器{ 公共摘要patientdo.Builder setCarType(字符串carType); 公共抽象汽车制造(); } }
如果您只想在提供carType时制作一个映射,那么您肯定不需要工厂。