文档章节

java枚举运用,易于扩展和使用

莫库什勒
 莫库什勒
发布于 2016/11/22 14:20
字数 406
阅读 100
收藏 1

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

没有什么情况下,必须使用枚举,枚举类型只是起到用于声明一组命名的常数;

那么我们什么时候推荐使用枚举呢;

  • 可减少由数字转置或键入错误引起的错误。

  • 以后更改值很容易。

  • 使代码更易读,这意味着代码中发生错误的概率降低。

  • 确保向前兼容性。使用枚举可减少将来有人更改与成员名称对应的值时代码出错的概率。

枚举类: 应用图片路径类型

/** <p class="detail">
 * 功能:应用图片路径类型
 * </p>
 * @ClassName: PicAppType 
 * @version V1.0  
 * @date 2016年4月23日 
 * @author damowang 
 */
public enum PicAppType {

    USER_HEAD("\\USER\\HEAD\\", "用户头像"),
    ARTICLE_ICON("\\ARTICLE\\TEXT\\", "资讯图片");

    private String code;

    private String detail;

    PicAppType(String code, String detail) {
        this.code = code;
        this.detail = detail;
    }
    
    /**
     * <p class="detail">
     * 功能:快捷迭代验证是否code存在
     * </p>
     * @author damowang 
     * @param type
     * @return 
     * @throws
     */
    public static PicAppType contains(String type){  
        for(PicAppType typeEnum : PicAppType.values()){  
            if(typeEnum.name().equals(type)){  
                return typeEnum;  
            }  
        }  
        return null;  
    } 
    
    /**
     * @return code
     */
    
    public String getCode() {
        return code;
    }

    /**
     * @param code
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * @return detail
     */

    public String getDetail() {
        return detail;
    }

    /**
     * @param detail
     */
    public void setDetail(String detail) {
        this.detail = detail;
    }

}

应用块: 使用的地方


    	String picTypeName = reqeust.getParameter("uploadType");
    	if(StringUtils.isBlank(picTypeName)){
    		temp.setStatus(0);
		   	 temp.setShowMessage("请传入图片类型!");
		   	 renderJson(temp);
		   	 return;
    	}
    	
    	PicAppType picType =PicAppType.contains(picTypeName);

        if (null == picType) {
            temp.setStatus(0);
		   	 temp.setShowMessage("传入图片类型有误!");
		   	 renderJson(temp);
		   	 return;
        }

public class EnumTest {
	public static void main(String[] args) {
		
		PicAppType tempEnum =PicAppType.contains("USER_HEAD");
		System.out.println(tempEnum.getCode());
		
		System.out.println(tempEnum.getDetail());
		
		tempEnum =PicAppType.contains("USER_HEAD1");
		if(tempEnum==null){
			System.out.println("不存在");
			return;
		}
		
		System.out.println("我执行了...");
	}
}

执行结果:

\USER\HEAD\
用户头像
不存在

 

莫库什勒

莫库什勒

粉丝 23
博文 215
码字总数 89822
作品 0
杭州
高级程序员
私信 提问
加载中
请先登录后再评论。
Java 枚举类型简介

目录 Java 枚举示例 Java 枚举构造函数 枚举类型是用于定义常量集合的特殊类型,更确切的说,JAVA枚举类型是一种特殊的 java 类。枚举类型可以包含常量、方法等。在 java5 中添加了 java 枚举...

osc_b5qcjovn
2018/03/26
2
0
用好Java中的枚举,真的没有那么简单!

“ 最近重看 Java 枚举,看到这篇觉得还不错的文章,于是简单翻译和完善了一些内容,分享给大家,希望你们也能有所收获。另外,不要忘了文末还有补充哦! ps: 这里发一篇枚举的文章,也是因为...

JavaGuide
01/16
0
0
用好Java中的枚举,真的没有那么简单!

“ 最近重看 Java 枚举,看到这篇觉得还不错的文章,于是简单翻译和完善了一些内容,分享给大家,希望你们也能有所收获。另外,不要忘了文末还有补充哦! ps: 这里发一篇枚举的文章,也是因为...

高行
01/18
0
0
C++ 跨平台多功能扩展库 - cpgf

cpgf 可为C++代码增加反射(元数据)、序列化、以及Luau和Python脚本绑定等功能,且不依赖任何外部工具。 cpgf 的目标是扩展C++语言,其中包含许多易于使用的功能,这些功能仅在其他更高级别...

wqking
2018/09/17
969
4
用好Java中的枚举,真的没有那么简单!

最近重看 Java 枚举,看到这篇觉得还不错的文章,于是简单翻译和完善了一些内容,分享给大家,希望你们也能有所收获。另外,不要忘了文末还有补充哦! ps: 这里发一篇枚举的文章,也是因为后...

SnailClimb
01/29
17
0

没有更多内容

加载失败,请刷新页面

加载更多

依赖管理(二):第三方组件库在Flutter中要如何管理

前面的文章中,我介绍了Flutter工程的资源管理机制。在Flutter中,资源采用先声明后使用的机制,在pubspec.yaml显示地声明资源路径后,才可以使用。 对于图片,Flutter基于像素密度,设立不同...

拉维
2019/08/15
4
0
宝塔免费版Nginx防火墙插件来啦,wordpress站长建议开启

之前网上有很多的帖子说宝塔隐藏了免费的自带的防火墙工具,一般用户需要去手动设置和开启,不过纯小白操作还是有点儿麻烦,担心搞错或者不会操作,不过近期看到宝塔应用软件商店上架了一款免...

zouaw建站
2019/11/22
9
0
珍藏已久的 OS 学习网站拿出来分享给大家

点击蓝色“Java建设者”关注我哟 加个“星标”,欢迎来撩 这是程序员cxuan的第 14篇原创文章 平常经常看推荐各种资源教程的,感觉有很多文章稂莠不齐,这次我来推荐点硬核的网站,包你有收获...

cxuaner
05/29
0
0
彤哥说netty系列之IO的五种模型

你好,我是彤哥,本篇是netty系列的第二篇。 欢迎来我的公从号彤哥读源码系统地学习源码&架构的知识。 简介 本文将介绍linux中的五种IO模型,同时也会介绍阻塞/非阻塞与同步/异步的区别。 何...

彤哥读源码
2019/11/15
9
0
微信屏蔽推广网址的解决思路,微信域名防封技术的实现过程

为什么很多商家在微信封域名如此严格的情况下,还会挤破头皮去做微信营销和推广呢?因为微信营销推广的效率要高于其他社交平台太多,微信的流量裂变的速度也高于其他社交平台,故大家都蜂拥而...

戚馨逸
21分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部