NutzCN Logo
问答 数组转换成一个map
发布于 2039天前 作者 动物园里的程序猿 3960 次浏览 复制 上一个帖子 下一个帖子
标签: nutzwk

这是带过来的参数 数组

    @Param("small_info")String[] smallInfos,
                         @Param("small_info_en")String[] smallInfo_ens,
                         @Param("small_info_hw")String[] smallInfo_hws,

这是执行过程

      NutMap tIeoImageinfos = new NutMap();
            Map<String, T_ieo_imageinfo> imageinfoMap = Lang.array2map(HashMap.class, smallInfos, "project_id");
            Map<String, T_ieo_imageinfo> imageinfoMap_en = Lang.array2map(HashMap.class, smallInfo_ens, "project_id");
            Map<String, T_ieo_imageinfo> imageinfoMap_hw = Lang.array2map(HashMap.class, smallInfo_hws, "project_id");

这是实体project_id类型

@Column
    @Comment("项目主键")
    @ColDefine(type = ColType.VARCHAR, width = 32)
    private String project_id;

这是异常

[WARN ] 14:19:01.640 org.nutz.mvc.impl.processor.FailProcessor.process(FailProcessor.java:28) - Error@/platform/ieo/project/editDo1 :
org.nutz.lang.FailToGetValueException: Fail to get value for [java.lang.String]->[project_id]
	at org.nutz.lang.Mirror.makeGetValueException(Mirror.java:790)
	at org.nutz.lang.Mirror.getValue(Mirror.java:852)
	at org.nutz.lang.Lang.array2map(Lang.java:1024)
	at cn.wizzer.app.web.modules.controllers.platform.ieo.TIeoProjectController.editDo(TIeoProjectController.java:301)
22 回复

array2map没用对吧

后边那个参数不就是是实体里的一个字段么

但你传的不是实体呀

那我map泛型应该写String,String么

这种转不了的

啊。。 我就是不想写一堆set 代码量太多了

        //插入英文项目信
        project_en.setProject_id(tIeoProject.getId());
        project_en.setOpBy(StringUtil.getPlatformUid());
        project_en.setOpAt(Times.getTS());
        project_en.setShorter_name_en(tIeoProject.getCurrency());
        //插入韩文项目信息
        project_hw.setProject_id(tIeoProject.getId());
        project_hw.setOpBy(StringUtil.getPlatformUid());
        project_hw.setOpAt(Times.getTS());
        project_hw.setShorter_name_hw(tIeoProject.getCurrency());

就类似这种的 实体不同调用的方法一样怎么能缩减代码量

Lang.copyProperties

这个是复制所有属性吧 有部分属性的么

而且 这个是两个对象 类型不同 也不能复制吧

可以指定需要复制哪些的

但是 两个对象类型不同也可以么

仔细看参数呀

没太看懂 参数是什么意思 lock是锁?

public static <T> T copyProperties(Object origin, T target, String active, String lock, boolean ignoreNull, boolean ignoreStatic) {

active和lock都是正则表达式, 前者匹配需要拷贝的属性, 后者匹配不需要拷贝的属性

        project_en = Lang.copyProperties(tIeoProject,project_en,"^opBy|opAt|shorter_name$","^id$",true,false);

需要这样么

无所谓,同一个对象

添加回复
请先登陆
回到顶部