自动检测正确的地图

Posted

技术标签:

【中文标题】自动检测正确的地图【英文标题】:Automatic detection of correct map 【发布时间】:2013-01-25 11:18:52 【问题描述】:
public class DAOHelper 

private static final Map<Class, Class> DTO_TO_DAO_MAP;
private static final Map<Class, Class> ACDTO_TO_ACDAO_MAP;


static 
    DTO_TO_DAO_MAP = new HashMap<Class, Class>();
    DTO_TO_DAO_MAP.put(EmployerDTO.class, EmployerDAO.class);

    ACDTO_TO_ACDAO_MAP = new HashMap<Class, Class>();
    ACDTO_TO_ACDAO_MAP.put(AcademicDTO.class, AcademicDAO.class);



public static BaseDAO<?> getDAO(Class dtoClass) 
    BaseDAO<?> dao = null;
    Class daoClass = ACDTO_TO_ACDAO_MAP.get(dtoClass); //here
    //rest of code  here


Class daoClass = ACDTO_TO_ACDAO_MAP.get(dtoClass); 在这部分代码中,而不是ACDTO_TO_ACDAO_MAP 我怎样才能让代码自动检测到这一点,所以我不会为每个代码手动执行,因为它可能是DTO_TO_DAO_MAP 或其他.. .

【问题讨论】:

【参考方案1】:

我建议使用命名约定和反射:

假设每个 DAO (FooDTO) 在同一个包中都有一个相应的 DAO (FooDAO),代码看起来像这样(免责声明 - 这不是我的想法,可能需要 tweek 或 2 来编译)

public static BaseDAO<?> getDAO(Class dtoClass) 

    String dtoClassName = dtoClass.getName();
    String daoClassName = dtoClassName.replaceAll("DTO$", "DAO");
    Class daoClass =  Class.forName(daoClassName);
    retrun daoClass.newInstance(daoClass);

当然,这个逻辑可以很容易地改变以适应不同的命名约定或不同的包。

【讨论】:

以上是关于自动检测正确的地图的主要内容,如果未能解决你的问题,请参考以下文章

智能网联汽车 自动驾驶地图数据质量规范

如何在 React-Native 中创建检测自动位置的地图

检测 ios11 设备是不是处于低功耗模式,以防止正常正确自动播放视频时出现不良 UX

远程视频实时监控人脸识别色球追踪Tensorflow 目标检测目标分类未知区域探索全自动SLAM构建地图 PS2手柄控制

在 AS3 中自动检测输入文本字段的值

C# 自动检测代理设置