Java枚举的使用,java枚举菜鸟教程
这篇文章给大家带来了一些关于java的知识,主要介绍了一些与枚举相关的问题,包括枚举的概念、优缺点以及常用的方法。希望对你有帮助。
如何解决写爬虫IP受阻的问题?立即使用。
一、基本概念
枚举是Java1.5引入的新功能。枚举类由关键字enum定义。枚举是一种特殊的类。像普通类一样,它可以使用构造函数,定义成员变量和方法,实现一个或多个接口。但是,枚举类不能继承其他类。
二、枚举的优缺点
:
1、优点
建议使用枚举来替换Effctive Java中的所有常量代码,原因如下:
(1)类型检查、有效性检查
(2)枚举作为一个类,可以有自己的属性(通常应该是常量,但我没遇到过不是常量的情况)和自己的方法(否则只能用switch写,实际上违背了原则)
(3)与常量相比,不需要看文档和源代码就可以直接知道所有可能的返回值,方便编码。
然而,这里的问题在于第一点。事实上,(1)在分布式环境中并不是必然的。如果在业务处理中允许一个接口返回值有未定义的内容,那么在反序列化中就不应该抛出异常,也没必要拘泥于(1)。同时,从第(2)点和第(3)点来看,限制列举范围的影响是巨大的。将带有自身属性和方法的枚举重写为代码和其他方法的配合,会增加所需的代码量,代码损坏的程度也会大大增加。
2、缺点
(1)由于Java支持单一继承,枚举类型不能再继承其他类;
(2)其实大家都知道,使用枚举作为返回值可能带来的问题是客户端和服务器的版本不一致,会造成反序列化异常。所以《阿里巴巴JAVA开发手册》已经采取了尽量避免异常的措施,所以禁止将枚举定义为返回值。
三、解决ifelse
对于业务开发来说,业务逻辑的复杂是不可避免的。随着业务的发展,需求只会越来越复杂。为了考虑各种情况,代码中必然会出现大量的if-else。
代码中一旦出现过多的if-else,就会极大地影响其可读性和可维护性,代码显得很low。
枚举可以解决这个问题;
枚举和切换是一个相对简单的话题。使用switch进行条件判断时,条件参数只能是整数和字符。switch确实支持枚举,java 1.7以后,switch也支持字符串。下面简单介绍一下开关和枚举类型的使用。
静态空测试开关(Week week){
切换(周){
星期一案例:
system . out . println(week . get meaning());
打破;
星期二案例:
system . out . println(week . get meaning());
打破;
周三案例:
system . out . println(week . get meaning());
打破;
案件周四:
system . out . println(week . get meaning());
打破;
星期五案例:
system . out . println(week . get meaning());
打破;
周六案例:
system . out . println(week . get meaning());
打破;
案例周日:
system . out . println(week . get meaning());
打破;
默认值:
System.out.println(您输入错误);
打破;
}}
四、枚举的常用方法
推荐:《java学习教程》以上是java枚举的使用总结的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。