枚举类的简单操作

直接代码吧

package com.jlife.sys.basepojo;

/**
 * Created by chenjianan on 2017/3/1-19:16.
 *
 * email 122741482@qq.com
 *
 * Describe:数据权限范围
 *
 * DATA_SCOPE_ALL("所有数据"),
 * DATA_SCOPE_COMPANY_AND_CHILD("所在公司及以下数据"),
 * DATA_SCOPE_COMPANY("所在公司数据"),
 * DATA_SCOPE_OFFICE_AND_CHILD("所在部门及以下数据"),
 * DATA_SCOPE_OFFICE("所在部门数据"),
 * DATA_SCOPE_SELF("仅本人数据"),
 * DATA_SCOPE_CUSTOM("按明细设置");
 */
public enum DataScopeEnum {

    /**
     * 所有数据
     */
    DATA_SCOPE_ALL("所有数据"),
    /**
     * 所在公司及以下数据
     */
    DATA_SCOPE_COMPANY_AND_CHILD("所在公司及以下数据"),
    /**
     * 所在公司数据
     */
    DATA_SCOPE_COMPANY("所在公司数据"),
    /**
     * 所在部门及以下数据
     */
    DATA_SCOPE_OFFICE_AND_CHILD("所在部门及以下数据"),
    /**
     * 所在部门数据
     */
    DATA_SCOPE_OFFICE("所在部门数据"),
    /**
     * 仅本人数据
     */
    DATA_SCOPE_SELF("仅本人数据"),
    /**
     * 按明细设置
     */
    DATA_SCOPE_CUSTOM("按明细设置");

    private final String value;
    DataScopeEnum(final String value){
        this.value=value;
    }
    /**
     * 传入name,返回对应value
     * @return Returns the value.
     */
    public String getValue(){
        return value;
    }

    /**
     * 传入value,返回对应name
     * @param name 中文名
     * @return Returns the name.
     */
    public static DataScopeEnum getNameByValue(String name){
        for (DataScopeEnum scopeEnum:DataScopeEnum.values()){
           if (scopeEnum.getValue().equals(name)){
               return scopeEnum;
           }
        }
        return null;
    }
}

测试一下

import com.jlife.sys.basepojo.DataScopeEnum;
import com.jlife.sys.entity.SysRole;
import org.junit.Test;

/**
 * Created by chenjianan on 2017/3/1-19:16.
 *
 * email 122741482@qq.com
 *
 * Describe:数据权限范围枚举类测试
 */
public class EunmDoTest {
    @Test
    public  void getName(){
        System.out.println("getName==enum.属性名获取英文名--》"+DataScopeEnum.DATA_SCOPE_ALL);
    }

    @Test
    public  void getValueByName(){
        System.out.println("getValueByName==enum.属性名获取英文名.getValue()获取中文名(值)--》"+DataScopeEnum.DATA_SCOPE_ALL.getValue());
    }

    @Test
    public  void getValues(){
      for (DataScopeEnum scopeEnum:DataScopeEnum.values()){
          System.out.println("getValues==ENUM.values()获取所有值--》"+scopeEnum);
      }
    }

    @Test
    public  void getNameByString(){
        System.out.println("getNameByString enum.valueOf(stringname)string转enum--》"+DataScopeEnum.valueOf("DATA_SCOPE_ALL"));
    }

    @Test
    public  void getNameByValue(){
        System.out.println("getNameByValue enum.valueOf(stringname)中文名转英文--》"+DataScopeEnum.getNameByValue("仅本人数据"));
    }
}

测试结果

getNameByValue enum.valueOf(stringname)中文名转英文--》DATA_SCOPE_SELF
getNameByString enum.valueOf(stringname)string转enum--》DATA_SCOPE_ALL
getName==enum.属性名获取英文名--》DATA_SCOPE_ALL
getValues==ENUM.values()获取所有值--》DATA_SCOPE_ALL
getValues==ENUM.values()获取所有值--》DATA_SCOPE_COMPANY_AND_CHILD
getValues==ENUM.values()获取所有值--》DATA_SCOPE_COMPANY
getValues==ENUM.values()获取所有值--》DATA_SCOPE_OFFICE_AND_CHILD
getValues==ENUM.values()获取所有值--》DATA_SCOPE_OFFICE
getValues==ENUM.values()获取所有值--》DATA_SCOPE_SELF
getValues==ENUM.values()获取所有值--》DATA_SCOPE_CUSTOM
getValueByName==enum.属性名获取英文名.getValue()获取中文名(值)--》所有数据
时间: 2024-09-20 11:40:25

枚举类的简单操作的相关文章

JavaScript按钮类的简单操作

按钮类: 1.页面刷新: function renovates() { document.location.reload(); } 2.动态为按钮添加事件: function addClick(obj) { obj.onclick=function() //绑定按钮的单击事件 { alert('动态添加事件成功 '); //单击事件完成的功能-输出提示 } } <input id="Button2" type="button" value=" 测试&

php简单操作mysql数据库的类_php技巧

本文实例讲述了php简单操作mysql数据库的类.分享给大家供大家参考.具体如下: <?php /** * Database class * * @version: 2.2 * @revised: 27 may 2007 * **/ class Database { var $host; var $name; var $user; var $pass; var $prefix; var $linkId; function Database($mysql) { foreach($mysql as

Java对时间的简单操作实例_java

本文实例讲述了Java对时间的简单操作方法.分享给大家供大家参考.具体分析如下: 这里所用的Date指的是java.util.Date. ps:使用java操作时间感觉真真蛋疼,还是我大C#舒服,一个DateTime全部搞定 获取当前时间: 复制代码 代码如下: // 创建一个当前时间的Date对象 Date time = new Date(); 蛋疼的地方,对时间增.减操作: 复制代码 代码如下: // 使用Calendar类对时间增.减操作 Calendar c = Calendar.get

C# Idioms: Enum还是Enum Class(枚举类)

C# Idioms:Enum还是Enum Class(枚举类) marshine (原文排版格式:http://www.marshine.com) reversion:2004/5/28修改说明:感谢Ninputer提到的CLS兼容问题,同时修改了原来版本没有提及的Equals改写,以及修改"=="重载的不完善代码,和增加enum struct内容 reversion:2004/6/4 增加kirc提到的Enum的Flags特性,因为文本超长,新的版本可以在http://www.mar

java 利用java反射机制动态加载类的简单实现_java

如下所示: ////////////////// Load.java package org.bromon.reflect; import java.util.ArrayList; import java.util.List; public class Load implements Operator { @Override public List<?> act(List<?> params) { // TODO Auto-generated method stub List<

Linq专题之提高编码效率—— 第三篇 你需要知道的枚举类

众所周知,如果一个类可以被枚举,那么这个类必须要实现IEnumerable接口,而恰恰我们所有的linq都是一个继承自IEnumerable接口的匿名类, 那么问题就来了,IEnumerable使了何等神通让这些集合类型可以被自由的枚举??? 一: 探索IEnumerable 首先我们看看此接口都定义了些什么东西,如ILSpy所示: 从这个接口中,好像也仅仅有一个IEnumerator接口类型的方法之外,并没有可以挖掘的东西,这时候大家就应该好奇了,foreach既然可以枚举Collection

Selenium Webdriver系列教程(2)—浏览器的简单操作

上一讲我们介绍了如何部署selenium 2.0的开发环境,这一讲我们将介绍如何使用selenium提供给我们的接口进行浏览器的简单操作. 本文将先介绍适合初级用户的一些常用方法,然后将对一些高级用法和实现源码进行稍微深入一些的分析. 如何打开一个测试浏览器 做自动化测试一般情况下我们都需要首先打开测试浏览器,浏览器开启后我们方可"命令"浏览器去打开新页面,点击特定的链接,判断具体的逻辑等等.因此该操作为"万里长征的第一步",必须给以重视.具体代码如下.需要注意的是

Struts中巧用java枚举类生成select标签的下拉列表

    select下拉选项的value值我们通常会使用一些数字或者英文缩写便于存入数据库中,例如: <option value="1">男</option><option value="0">女</option>这样在数据库里存为1的记录代表是男,而0代表是女,在java类文件里,我们一般会定义为常量放在一个专门的类文件中:     public static String            SEX_MAN   

C++11的for循环,以及范围Range类的简单实现_C 语言

C++11支持range-based for循环.这是一个很方便的特性,能省挺多代码.以下代码就能很方便的遍历vector中的元素,并打印出来: std::vector<int> int_vec; int_vec.push_back(1); int_vec.push_back(2); //如果要修改int_vec中的元素,将变量x声明为 int& 即可 for (int x: int_vec) { std::cout << x << endl; } 可以遍历的对