当前位置: 首页 > wzjs >正文

免费制图网站游戏开发语言

免费制图网站,游戏开发语言,网页模板下载了如何修改使用?,内容营销策略有哪些下面是一个完整的 Dagger 多绑定映射(IntoMap)示例,展示从定义到使用的全过程: Binds注解 Binds:这是 Dagger 中的一个注解,用于声明某个抽象方法的返回类型是接口或抽象类,而方法的参数是其具体实现类!&am…

下面是一个完整的 Dagger 多绑定映射(@IntoMap)示例,展示从定义到使用的全过程:

@Binds注解

@Binds:这是 Dagger 中的一个注解,用于声明某个抽象方法的返回类型是接口或抽象类,而方法的参数是其具体实现类!!!

@IntoMap

@IntoMap :将EngineService放入一个Map<Class<?>, CarService>集合中

1. 定义服务接口和实现

// 服务接口
public interface CarService {void start();
}// 引擎服务实现
public class EngineService implements CarService {@Injectpublic EngineService() {}@Overridepublic void start() {System.out.println("Engine started");}
}// 空调服务实现
public class AirConditioningService implements CarService {@Injectpublic AirConditioningService() {}@Overridepublic void start() {System.out.println("AC cooling started");}
}

2. 创建 Dagger 模块

import dagger.Binds;
import dagger.Module;
import dagger.multibindings.ClassKey;
import dagger.multibindings.IntoMap;@Module
public abstract class CarServiceModule {// 将 EngineService 绑定到 Map<Class, CarService>@Binds :EngineServiceCarService的实现类@IntoMap :EngineService放入一个Map<Class<?>, CarService>集合中@ClassKey(EngineService.class) :EngineService.class作为放入Map的键keyabstract CarService bindEngineService(EngineService impl);// 将 AirConditioningService 绑定到 Map@Binds@IntoMap@ClassKey(AirConditioningService.class)abstract CarService bindAirConditioningService(AirConditioningService impl);
}

3. 创建服务管理器

import javax.inject.Inject;
import java.util.Map;public class ServiceManager {private final Map<Class<?>, CarService> serviceMap;@Injectpublic ServiceManager(Map<Class<?>, CarService> serviceMap) {this.serviceMap = serviceMap;System.out.println("ServiceManager initialized with services: " + serviceMap.keySet());}public CarService getService(Class<?> serviceClass) {return serviceMap.get(serviceClass);}
}

4. 创建 Dagger 组件

import dagger.Component;@Component(modules = CarServiceModule.class)
public interface CarComponent {ServiceManager getServiceManager();// 可选:直接获取MapMap<Class<?>, CarService> getServiceMap();
}

5. 使用示例

public class CarApp {public static void main(String[] args) {// 创建Dagger组件CarComponent component = DaggerCarComponent.create();// 获取服务管理器ServiceManager manager = component.getServiceManager();// 使用服务CarService engine = manager.getService(EngineService.class);engine.start(); // 输出: Engine startedCarService ac = manager.getService(AirConditioningService.class);ac.start(); // 输出: AC cooling started// 直接获取MapMap<Class<?>, CarService> serviceMap = component.getServiceMap();System.out.println("Direct map access: " + serviceMap.keySet());}
}

6. 生成的 Dagger 代码 (简化版)

// DaggerCarComponent.java (自动生成)
public final class DaggerCarComponent implements CarComponent {private final Map<Class<?>, Provider<CarService>> serviceMapProvider;private DaggerCarComponent() {this.serviceMapProvider = createServiceMap();}private Map<Class<?>, Provider<CarService>> createServiceMap() {Map<Class<?>, Provider<CarService>> map = new HashMap<>();// 绑定EngineServiceProvider<EngineService> engineProvider = DoubleCheck.provider(EngineService_Factory.create());map.put(EngineService.class, (Provider)engineProvider);// 绑定AirConditioningServiceProvider<AirConditioningService> acProvider = DoubleCheck.provider(AirConditioningService_Factory.create());map.put(AirConditioningService.class, (Provider)acProvider);return Collections.unmodifiableMap(map);}@Overridepublic ServiceManager getServiceManager() {return new ServiceManager(MapProviderFactory.<Class<?>, CarService>create(serviceMapProvider).get());}@Overridepublic Map<Class<?>, CarService> getServiceMap() {return MapProviderFactory.<Class<?>, CarService>create(serviceMapProvider).get();}
}

输出结果

ServiceManager initialized with services: [class EngineService, class AirConditioningService]
Engine started
AC cooling started
Direct map access: {class EngineService=EngineService@1234, class AirConditioningService=AirConditioningService@5678}

文章转载自:

http://9dfE4n4i.xdpjf.cn
http://BWcX5HpF.xdpjf.cn
http://rtg9Xu7e.xdpjf.cn
http://j4nwjiBQ.xdpjf.cn
http://E5D3b14t.xdpjf.cn
http://sN2CdBmt.xdpjf.cn
http://n711KmG5.xdpjf.cn
http://JRDQb9DL.xdpjf.cn
http://Z3W2IhgS.xdpjf.cn
http://aO6q7lvd.xdpjf.cn
http://FkLicaOH.xdpjf.cn
http://cLYjNlnp.xdpjf.cn
http://PpqiXOOa.xdpjf.cn
http://0hng3eSj.xdpjf.cn
http://xyBycLmd.xdpjf.cn
http://1P04DtYp.xdpjf.cn
http://r3r9Q1do.xdpjf.cn
http://BGOelwNE.xdpjf.cn
http://DbfRJSVA.xdpjf.cn
http://AGb4P544.xdpjf.cn
http://rpWGlH3s.xdpjf.cn
http://NxD4sh5I.xdpjf.cn
http://iPMMlBW3.xdpjf.cn
http://bHqSWsBJ.xdpjf.cn
http://UV1hH90M.xdpjf.cn
http://dPFlulA0.xdpjf.cn
http://typ1nkPb.xdpjf.cn
http://SfhPQXks.xdpjf.cn
http://w0QlPDa2.xdpjf.cn
http://TnE6zIkV.xdpjf.cn
http://www.dtcms.com/wzjs/778099.html

相关文章:

  • 酒仙网技术开发与网站建设方面福州外贸网站制作
  • 做外贸生意哪个网站好云尚网络科技有限公司域名主机
  • 织梦 蓝色 个人网站博客网站源码肖港网站开发
  • 检测网站开发语言现代风格装修效果图
  • 做暧小视频xo网站做网站模块
  • 抚州市建设局网站成都网站设计优选柚v米科技
  • 做网站的等级保护要多少钱免费模板简历在哪下
  • 正规网站建设官网网站地图如何做
  • 润滑油东莞网站建设怎么给公司做简单网站
  • 滨江网站开发石家庄企业自助建站系统
  • 网站群建设管理办法joomla可以做预订类网站吗
  • 网站怎么做流量智能ai写作免费网站
  • 深圳找做兼职女上班的网站开网站 主机 服务器
  • 网站后台无法上传本地图片wordpress 文章空白页
  • 富阳做兼职的网站wordpress 登陆后跳转
  • 游戏租号网站怎么建设中国建设银行手机wap网站
  • 大学网站开发的流程图新浪云wordpress
  • 功能型网站开发湘潭建设公司网站
  • 网站建设石家庄企业网站新闻如何建设
  • 如何在网站做投票技术网站源码wordpress
  • 站酷网如何接单阿里巴巴专门做外贸的网站
  • 做好网站怎么做app做的好的茶叶网站
  • 帝国cms小说网站模板下载长沙最新死亡事件
  • 外贸建站哪个最便宜wordpress 总浏览数量
  • 大型网站 jquery我们为什么要学网站开发
  • 网站营销方式我自己做网站
  • 襄阳谷城网站建设昆明网站做的好的公司哪家好
  • 金山做网站的公司长春网络优化最好的公司
  • 宁波慈溪网站建设石家庄网页设计机构
  • 教你如何建设网站阿里去免费的网站域名查询app