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

珠海企业网站制作费用手游推广赚佣金的平台

珠海企业网站制作费用,手游推广赚佣金的平台,网络策划书一般包括哪些内容,腾讯云跑wordpress怎么样下面是一个完整的 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://www.dtcms.com/wzjs/156782.html

相关文章:

  • 有人拉我做彩票网站企业管理培训课程费用
  • 唐山正规做网站的公司seo销售代表招聘
  • 企业为什么需要网站职业技能培训班
  • 自己做的旅游网站简介广州企业网站seo
  • 福田企业网站推广公司网站发布流程
  • 建立本地网站百度seo优化推广
  • 沈阳做网站的地方百度搜索排名机制
  • 中企动力做网站贵吗网站制作教程视频
  • 昆明做网站竞价网站推广的方式有哪些?
  • 网站后台程序和数据库开发搜索优化是什么意思
  • 网站设计与建设论文开题报告广州seo招聘信息
  • 河北邢台穷吗seo国外推广软件
  • 蚌埠市建设银行官方网站泉州seo代理商
  • 专业网站的建设设行吗营销活动方案模板
  • 建设厅网站举报静态网页制作
  • 关于做网站的英语对话任务放单平台
  • bootstrap网站登录页面创意设计
  • 青岛企业网站建设优化海外推广解决方案
  • 网页游戏交易网站全球疫情最新数据消息
  • 公司的英文网站东莞做网站公司
  • 网站备案资料蜂蜜网络营销推广方案
  • wordpress 页面和菜单徐州seo推广优化
  • ajax数据库网页网站设计广州网络科技有限公司
  • 湖北宜昌网seowhy培训
  • 茌平微网站建设百度知道官网手机版
  • 二级建造师注册查询官网入口搜索引擎优化包括哪些方面
  • 杭州模板网站建设百度的排名规则详解
  • 合肥营销网站建设价格苏州网站建设
  • 甘肃张掖网站建设外贸推广有哪些好的方式
  • 注册进出口贸易公司条件站长seo软件