美文网首页
键值对直接初始化常量

键值对直接初始化常量

作者: TryCatch菌 | 来源:发表于2018-10-05 01:06 被阅读0次

在开发中,经常会用到很多的公用常量,页面展示的是汉字,数据库中存储的是状态码,可以在查询后用decode转换,也可以页面进行转换,这里写一个常量初始化后直接展示的思路方法

package com.lovo.beans;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 键值对方式处理公用常量对象
 * @author WZH
 *
 */
public class ContantsBean {
    
    /**
     * 常量名
     */
    private String key;
    
    /**
     * 常量值
     */
    private String value;
    
    /**
     * 常量类型
     */
    private String model;
    
    private List<ContantsBean> contants;
    
    
    //实际开发中在此不就加载在项目启动中已经加载到内存或缓存中的值,此段后面的静态块和静态常量不要
    //public  List<Map<String, List<ContantsBean>>> contantsList = ContantsInit(model);
    
    /**
     * 常量集合
     */
    public static List<Map<String, List<ContantsBean>>> contantsList;

    /**
     * 这里直接初始化一下,实际情况中为常量表中或配置中查询出的值
     */
    static
    {
        contantsList = new ArrayList<>();
        ContantsBean c1 = new ContantsBean("01", "中文");
        ContantsBean c2 = new ContantsBean("02", "英文");
        ContantsBean c3 = new ContantsBean("03", "日文");
        List<ContantsBean> ListTemp1 = new ArrayList<>();
        ListTemp1.add(c1);
        ListTemp1.add(c2);
        ListTemp1.add(c3);
        Map<String, List<ContantsBean>> MapTemp1 = new HashMap<String, List<ContantsBean>>();
        MapTemp1.put("language", ListTemp1);
        
        ContantsBean c4 = new ContantsBean("01", "中国");
        ContantsBean c5 = new ContantsBean("02", "英国");
        ContantsBean c6 = new ContantsBean("03", "日本");
        List<ContantsBean> ListTemp2 = new ArrayList<>();
        ListTemp2.add(c4);
        ListTemp2.add(c5);
        ListTemp2.add(c6);
        
        Map<String, List<ContantsBean>> MapTemp2 = new HashMap<String, List<ContantsBean>>();
        MapTemp2.put("contry", ListTemp2);
        contantsList.add(MapTemp1);
        contantsList.add(MapTemp2);
    }
    
    public ContantsBean() {
        super();
    }

    
    
    public ContantsBean(String key, String value) {
        super();
        this.key = key;
        this.value = value;
    }


    /**
     * 通过常量类型 初始化对应常量集合
     * @param model
     */
    public ContantsBean(String model) {
        super();
        this.model = model;
        for (Map<String, List<ContantsBean>> temp : contantsList) 
        {
            if(null != temp.get(model))
            {
                this.contants = temp.get(model);
                break;
            }
            
        }
        
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    /**
     * 通过键取值
     * @return
     */
    public String getValue() {
        for (ContantsBean bean : contants) 
        {
            if(this.key.equals(bean.getKey()))
            {
                return bean.getThisValue();
            }
        }
        
        return "";
    }

    /**
     * get方法已经更改,重新定义一个私有的获取本类值的方法
     * @return
     */
    private String getThisValue() 
    {
        return value;
    }   
    public void setValue(String value) {
        this.value = value;
    }
    
/*  public static void main(String[] args) {
        ContantsBean test = new ContantsBean("language");
        test.setKey("01");
        System.out.println(test.getValue());
    }
    */
}


@RequestMapping("/contantsTest.do")
    public String ContantsTest(Model mode)
    {
        //这里模拟数据库查询出的数据,语言字段存的为1
        ContantsBean test = new ContantsBean("language");
        test.setKey("01");
        mode.addAttribute("test", test);
        return "contantsTest";
        
    }
<div class="container" style="width: 100%" >
    ${test.value}
  </div>
image.png

相关文章

  • 键值对直接初始化常量

    在开发中,经常会用到很多的公用常量,页面展示的是汉字,数据库中存储的是状态码,可以在查询后用decode转换,也可...

  • 配置一个键值对常量表

    配置一个键值对常量表 这样就可以直接用过MessagePair.SUCCESS获取Code.通过MessagePa...

  • Android:Kotlin语法基础

    主函数 变量 1、常量 val修饰常量,编译器规定常量必须初始化,若不想初始化,可用by lazy{}对常量进行懒...

  • 常量

    C#1.readonly 运行时常量可直接初始化时赋值或在构造函数中赋值2.const 编译时常量初始化时必须赋值...

  • JavaScript教程day08-Map和Set

    Map和Set Map Map是一组键值对的结构,具有极快的查找速度 初始化Map需要一个二维数组,或者直接初始化...

  • Map 和 Set

    Map Map是一组键值对的结构,具有极快的查找速度。 初始化Map需要一个二维数组,或者直接初始化一个空Map ...

  • 3.2 使用循环语句获得序列中的最小值 [Swift教程]

    1. 本节课将使用循环语句,获得数组中的最小值。 2. 首先初始化一个字典常量。 3. 给字典添加一个键值对,键为...

  • 2021-04-26pta终结刷题

    c++的map映射可以提前规定好映射的格式,然后可以根据键值直接添加python的dict使用{}初始化,不能直接...

  • go-day3

    结构体(struct) 结构体定义 结构体初始化 先声明再赋值 声明同时初始化 键值对初始化 值列表初始化 注意事...

  • final和static final修饰成员变量的区别

    final称为常量,static final称为全局常量。 成员变量是随类初始化或对象初始化而初始化的。当类初始化...

网友评论

      本文标题:键值对直接初始化常量

      本文链接:https://www.haomeiwen.com/subject/arpvoftx.html