游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

java中的enum第一期enum存在的意义

  大家好,我是贠学文,点击右上方关注,每天为您分享java程序员需要掌握的知识点干货。
  凌晨四点的北京
  记得有人曾经和我说过,他在使用java的过程中,从来没有使用过enum。当然了,你不使用enum,一样可以编码,但是enum存在的意义,就是让我们的代码更加的便于开发和维护。什么是enum
  enum可以理解为将一组具有相同性质的常量封装成一个对象数组,封装成对象数组后,数组中的每个元素,都具有了对象的性质,使得我们在使用时,可以充分的利用面向对象的设计思想,对代码做解耦合,使代码的开发都维护,都变得更加简单。
  举例来说,一个用户对象,有下面几种状态:正常、锁定、密码过期、注销。那我们用常量去定义时,代码如下图一所示:
  图一
  用枚举以后,我们可以将这一组常量,封装成一个集合,代码如下图二所示:
  图二
  这样封装以后,枚举中的每个元素,就都具有了对象的性质。那这样封装了以后,具体有什么好处呢?下面分别来说明。enum能给我们带来哪些好处方法入参的验证
  假如有某方法,需要用户状态做入参,如果用常量的话,需要判断入参的参数值是否在常量的范围内,如下图三所示:
  图三
  可以看出,这段代码中的对参数的验证,有些复杂,而且这还是变量值不多的情况,只有四个,如果常量值多了,将会更加复杂。那如果用枚举的方式呢,如下图四所示:
  图四
  可以看出,用枚举做为入参的话,在方法中只判断枚举对象是否为空即可,非常简单,而且也不会枚举类中的值变多而使判断逻辑变得复杂。因为这里用了枚举类型做了强限制,只要传来的不是空,就参数一定是合法的,否则连编译都过不去。反向查找
  使用常量定义时,我们可以做正向查找,即可以根据状态找到对应的值,比如可以找到状态为正常的值为1,状态为锁定的值为2。但是有些时候,我们需要做反向查找,即通过状态的值,去找到该值对应的状态是什么,这个通过常量是无法做到的,但是通过枚举就可以做到。如下图五所示:
  图五
  通过上图中的getByID方法,就可以通过值反向查找状态。
  但是这样做的话,需要在每个枚举类中都重写这个方法,比较麻烦,所以我们可以就这个方法提取到工具类中复用。首先,我们先定义一个接口,如下图六所示:
  图六
  然后再让我们定义的枚举类实现这个接口,如下图1。1。87所示:
  图七
  下面再把反向查找的代码封装到工具类中,如下图八所示:
  图八
  利用状态模式减少代码中的大量判断
  假如有某方法,需要判断用户的状态,然后不同的状态,做出不同的行为,我们先看下使用常量会怎么做,如图九所示:
  图九
  可见代码中会存在大量的判断,会后期的代码维护带来困难。可能有人会说,可以使用工厂模式,这样在使用的时候就没有这大量的判断了,但是这样的话,工厂类中还是会有大量的判断,效果是一样的,判断并没有减少,只是挪了一下地方而已,后期的维护还是很麻烦。
  那如果用枚举类就会简单很多,首先我们在枚举类中定义一个抽象方法,然后让枚举中的每一个元素都重写这个方法,如下图十所示:
  图十
  然后在使用时,只是简单调用这个方法即可,如下图十一所示:
  图十一
  这个就减少了大量的if判断,代码变得非常简单,易于维护。
  但是在枚举中定义抽象方法,如果定义得多了,或者某个抽象方法的实现比较复杂,就会使这个枚举类变得很臃肿。这时我们抽象出来一个接口,然后把抽象方法都放到这个接口中,如下图十二所示:
  图十二
  然后在枚举类中,只需要返回每个元素对应的实现类的对象即可,如下图十三所示:
  图十三
  然后在使用时,如下图十四所示:
  图十四
  这样既让枚举类变得不再臃肿,又让在使用时变得简单,方便了后期的代码维护。
  以上这些,就是我总结的enum能够给我们带来的好处,下一期,我们来讲一下enum的底层实现原理。
  往期精彩:
  工厂模式如何消除大量的ifelse第二期
  工厂模式如何消除大量的ifelse第一期
  java中if与switch的那些事
  Elasticsearch的核心真的是倒排索引吗?
  史上将String常量池讲得最透彻的文章
  作者介绍:
  贠学文,具有多有经验的java开发工程师,业余时间利用头条分享技术知识点与自己对技术的感悟,帮助对自己未来感到迷茫的程序员,在技术上得到提升。结识一些志同道合的朋友,相互促进,共同进步。

传奇游戏到中期,怎么继续快速升级呢?热血传奇手机版手游中期怎么玩?玩家在中期怎么提升战斗力?今天安趣小哥就来给各位中期的玩家介绍发一下提升战斗力的方法!中期玩家快速提升战斗力,当玩家等级到达50级时,就该考……打卡网红公路红井路红井路是一条蜿蜒盘旋于崇山峻岭中的一条乡村公路,是北京境内弯道最多,风景最美的一条山区公路。它起于十渡镇卧龙村红港口,止于108国道霞云岭乡井儿峪,道路全长18。94公里……人到中年,千万别提这件事《夏至未至》一书中说:年少时,我们总以为父母无坚不摧,直到撞破他们的无助,才明白那是因为爱,他们才愿意扮演英雄。这句话,初闻不知其意,细想却觉得有些难过。时间……喝秋葵水真的能降低血糖吗?提醒牢记3个原则,对身体更健康王先生前几年诊断出糖尿病,最近发现糖化血数居然高达到10,医生让他更换药物,再加上饮食控制,血糖终于稳定,血压和胆固醇也降到了正常范围,但是前一段时间,他在网络上看到说秋葵泡水……7。1声道头戴游戏耳机,特有RGB灯效,雷柏VH650组队玩前言:如今越来越多的游戏用户选择使用头戴游戏耳机作为必备装备,不仅要追求佩戴舒适性,还要炫酷的外观,这样看起来不仅舒服,使用也更省心!V叔也和大部分游戏玩家一样,在外设装备方面……伊藤美诚隔网对决张本智和,国乒两大名将12落后,向鹏接受挑战布达佩斯WTT球星挑战赛正赛打响,伊藤美诚和张本智和在混双首轮隔网对决,一人出局在所难免;国乒两大名将王曼昱王楚钦收获利好,不费吹灰之力,避免了一场遭遇战,首轮1:2落后;小将……10多款让人一看就爱上的发型,不论你头发多与少,总有一款适合生活中每个人的颜值还是有些差别的,但我们都可以通过后天的努力来提升自身的不足,比如发型在提升颜值方面就特别的给力,可以让自己变得洋气又时尚,利落又精致,今天为大家带了个十多款让……黑洞的真相曲速飞行是个伪命题图片来自网络一些科学家期望通过弯曲空间穿越时空,甚至以此达到超过光速的速度来实现星际旅行。遗憾的是,在空子理论中,曲速飞行是个伪命题。举个例子。很多科学……说窦骁吃软饭我第一个不同意,看圈内人士怎么评价他?说窦骁吃软饭我第一个不同意,看圈内人士怎么评价他?与其说窦骁吃软饭,不如说何超莲慧眼识珠!近日因为窦骁过生日,网友们又被窦骁何超莲的狗粮喂饱了,何超莲还亲昵的称呼窦骁为宝……吃了碳酸钙会便秘吗健康养生便秘问题是因用了碳酸钙吗?选择用钙很重要。大家好,有一个女士和我提出了她用钙以后出现了便秘的问题。我当时问她你用的是碳酸钙吧。回答说yes。碳酸钙它具有强碱性。碳酸……中国移动回A未破发,运营商估值为何迟迟上不来?经济观察网记者沈怡然1月5日,中国移动(600941)在上交所正式挂牌交易,挂牌仪式在北京总部做了同步直播。屏幕中,中国移动董事长杨杰身披一条红围巾,满带笑容的做了上市致……你以为的护眼知识,90都不管用你从小到大听过的几种护眼眼方式,来看看你中了几条:1要多看绿色的东西可以保护眼睛2要多吃猪肝可以保护视力3要多转动眼球可以放松眼睛4要多吃枸杞可以明目……
独立悬架和扭力悬架有啥区别,为啥马自达和奔驰坚持使用后者?独立悬架与扭力梁非独立悬架区别还是很大的。而马自达与奔驰并不是所有车型都采用板车悬挂的。仔细看一下,奔驰A级采用板车悬挂,马自达也是在小型SUV(cx3)上采用了板车悬挂。主要……刹车为什么要先刹后离?首先相比先离后刹,先刹后离的制动效果是明显强于前者的,这也就意味着,当遇到紧急情况时,需要在最短时间内完成刹车。这种情况下首先要做的就是减速,先踩刹车,待速度降低后,再踩离合并……中国14亿人口,为何汽车却很难卖出去?知足常乐,你希望人手一部呀你知道现在的中国有多少辆车吗?公车加私家车?高速费,高油价,维修乱,整车质量,买了车的吐槽,没买车的吓着了。说实话,按我们的交通规划……拥有了自己的第一辆摩托车是什么感觉?我是1983年就学会了骑摩托车的。那时候摩托车极其稀少,全县仅仅是电业局、邮电局才有几辆,而公安局的长江750是摸不着的。我是溜舔住邮电局送信的摩班师父,用绿皮幸福250学会的……一加AcePro小米2SUltra和iQoo10pro之间咋如果非要在这三款手机当中选择一款手机进行购买,小芳我个人是更加推荐大家购买小米2SUltra这款手机的。不过每个人的需求是不一样的,那么做出的最终购机选择,也是会有所不同的。鉴……有人说宁愿坐公交也不开几万的国产车,开廉价车真的很丢人吗?我宁可买几万的国产自主车,也不会买十多二十万的合资棺材,因为不论是用料,科技,安全还是款式设计,国产几万的车就比合资的强多了,重要的时候还能够保命,开着十多万的合资棺材才是真正……交通乱象电动三轮频出镜,若农村全面禁止电动三轮,你认为可行吗别忘了中国平民的生活虽然脱贫了但还有7080的人是靠着最简便的交通工具电动车过的正常生活的!如果全面禁止我认为背向普通民众做出的最大错误!电动三轮车是目前农村和城乡结合部……连云港这个城市为什么不建高架桥?很高兴回答这个问题,连云港连云区高新区海州区市区人口约65万左右,(不含赣榆区)加之日常流入人口(县,旅游等)不超80万。城市海州区至连云区(港口)呈长条形跨长约40公里。古城……本人想换摩托车,预算10000以下,省油是重点,每天100里来回100公里吧?我来回是60公里,每天跑!我有小车也有摩托车,天气好的话,我还是愿意骑摩托车!看了楼上的回答,都很有建议性,本人其实对摩托车也不是很了解,但就我上班骑摩托车的……韭菜是个宝,堪称初春第一鲜,3类人群要少吃立春之后,阳气升发、万物初生,此时养生需注意保护阳气,以适应春季阳气初升的特点,饮食宜选用辛甘发散之品,不宜食酸收之味,避免吃油腻生冷食物,忌暴饮暴食,食物烹饪要清淡,足量喝水……2019款长安CS75和CS55,哪款车型更值得购买?首先非常感谢悟空提供的平台,让我们互相帮助答疑解惑。题主你好,很高兴为您解答这个问题,下面我来说下我的一些看法,希望对你有所帮助。长安CS系列的SUV车型应该说在国……国产最便宜的SUV,不到5万,为什么识货人都不买?五万块左右的SUV,目前在售的新车往左没有一台是纯粹的SUV,往右得右出不少能选的到。这个价位的SUV能想到的一些,比如吉利远景X1、奇瑞瑞虎3x、五菱宏光s3、哈弗h1……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网