首页 > 其他分享 >任意对象转化为字典

任意对象转化为字典

时间:2023-04-28 11:37:16浏览次数:33  
标签:return String value label 转化 obj 任意 public 字典

import java.io.Serializable;

public class SelectModel  implements Serializable {

    private static final long serialVersionUID = 1L;

    private Integer value;

    private String label;

    private String isValid;

    public Integer getValue() {
        return value;
    }

    public void setValue(Integer value) {
        this.value = value;
    }

    public String getLabel() {
        return label;
    }

    public void setLabel(String label) {
        this.label = label;
    }

    public String getIsValid() {
        return isValid;
    }

    public void setIsValid(String isValid) {
        this.isValid = isValid;
    }
}
protected SelectModel toSelectModel(Object obj, String valueName, String labelName, String... fields) {
        SelectModel selectModel = new SelectModel();
        Class<?> tClass = obj.getClass();
        try {
            Method methodV = tClass.getMethod("get" + StringUtils.capitalize(valueName), null);
            Object value = methodV.invoke(obj, null);
            selectModel.setValue((Integer) Optional.ofNullable(value).orElse(0));

            Method methodL = tClass.getMethod("get" + StringUtils.capitalize(labelName), null);
            Object label = methodL.invoke(obj, null);
            selectModel.setLabel(Optional.ofNullable(label).orElse("").toString());

            if (fields != null && fields.length > 0) {
                BeanWrapper srcWrap = PropertyAccessorFactory.forBeanPropertyAccess(obj);
                BeanWrapper trgWrap = PropertyAccessorFactory.forBeanPropertyAccess(selectModel);

                Arrays.stream(fields).forEach(f -> trgWrap.setPropertyValue(f, srcWrap.getPropertyValue(f)));
            }
            return selectModel;
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            logger.error("系统异常", e);
        }
        return selectModel;
    }
protected List<SelectModel> toSelectModelList(List data, String valueName, String labelName, String... fields) {
        if (data != null) {
            List<SelectModel> list = new ArrayList<>();
            for (Object obj : data) {
                list.add(toSelectModel(obj, valueName, labelName, fields));
            }
            return list;
        }
        return null;
    }
List<SelectModel> list = toSelectModelList(pageListModel.getList(), "areaCode", "areaName", "isValid");

toSelectModel(item, "itemValue", "itemContent")

标签:return,String,value,label,转化,obj,任意,public,字典
From: https://www.cnblogs.com/lovedaodao/p/17361601.html

相关文章

  • 使用 for 循环遍历 Python 字典
    #list切片后仍是listlist=['a','b','c','d']print(list[:2]) #['a','b']  结果为listprint(list[:1]) #['a']     结果仍为lists='hello's1=''foriins:ifi=='e......
  • Python-字典的基本操作
    1.字典的创建1.1、直接赋值创建字典语法格式:变量名={键1:值1,键2:值2,...}info={'第一个':0,"第二个":1,"第三个":2}print(info)1.2、使用内置函数dict()创建字典内置函数dict()可通过其他字典、“(键,值)”对的序列或关键字参数来创建字典。#创建空的字典info2=dict()#使......
  • zip函数组装字典和列表
    zip:字面意思就是打包的意思,目的也是打包组装列表:defget_dict(a:list,b:list):d=list(zip(a,b))returndif__name__=='__main__':#print(time_specific())list1=[1,2,3]list2=[4,5,6]print(get_dict(list1,list2))结果:D:\Pyth......
  • Python打印一个字典,输出带双引号
    Python中dict(字典)默认的表示方式是用单引号表示键和值,例如:my_dict={'key1':'value1','key2':'value2'}print(my_dict)这将输出:{'key1':'value1','key2':'value2'}如果你想使用双引号代替单引号进行表示,可以使用json......
  • 递归比较两个字典差异-python dict different
    deffindDiff(d1,d2,path=""):forkind1:if(knotind2):print(path,":")print(k+"askeynotind2","\n")else:iftype(d1[k])isdict:......
  • 1.10 数值转化
    第一部曲: 第二部曲:第三部曲:第四部曲:#include<iostream>#include<cmath>usingnamespacestd;constintN=101;intchar_to_num(charch){ if(ch>='0'&&ch<='9')returnch-'0'; elsereturnch-'A'+10;}charnum_......
  • R语言实现GWAS结果显著SNP位点归类提取与变异类型转化
    GWAS结果显著SNP位点归类提取与变异类型转化根据GWAS得到的Rresult文件信息,能够找出每个snp位点对应的显著性情况和基因变异信息,接下来,需要根据表格中的信息进行归纳总结,对不同显著性层次进行区分,找出可能性最大的点,过程比较繁琐。这里笔者分享一个算法,使统计SNP和变异类型变的......
  • 康托展开 全排列与其字典序的双映射转换
    对于给定的序列123,其全排列有6种,按照字典序从小到大即为01  23451,2,31,3,22,1,32,3,13,1,23,2,1可以看出,每个全排列序列都唯一对应一个字典序数(从0开始),那么,有什么方法可以根据序列求出其对应的字典序或者根据字典序来推断其对应序列呢一个朴素的思想,我们使用深搜......
  • 转化流Demon02
    packagetest2;importjava.io.*;//转换流publicclassDemo03{publicstaticvoidmain(String[]args){FileOutputStreamfos=null;FileInputStreamfis=null;InputStreamReaderisr=null;try{fos=newFileOutputS......
  • POJ - 3764 XOR&&dfs 01字典树
    Inanedge-weightedtree,thexor-lengthofapathpisdefinedasthexorsumoftheweightsofedgesonp:{xor}length§=\oplus{e\inp}w(e)⊕isthexoroperator.Wesayapaththexor-longestpathifithasthelargestxor-length.Givenanedge-weigh......