Java 枚举活用

Java 枚举活用

  1 /**
  2  * 联盟神兽、神兽资源枚举
  3  *
  4  * @author TonyCody
  5  * @author 13-9-22
  6  * @time 下午5:35
  7  */
  8 public enum LegionDogzType {
  9 
 10     FOOD(1) {
 11         @Override
 12         public int getResource(LegionDogzVO dogz) {
 13             return dogz.getFood();
 14         }
 15 
 16         @Override
 17         public boolean isCDUp(UserLimitVO ul) {
 18             return cdUp(this, ul);
 19         }
 20 
 21         @Override
 22         public int getCDTime(UserLimitVO ul) {
 23             return ul.getDogzFoodSec();
 24         }
 25 
 26         @Override
 27         public void increateCDTime(UserLimitVO ul, int sec) {
 28             ul.setDogzFoodSec(sec);
 29         }
 30 
 31         @Override
 32         public void increateResource(LegionDogzVO dogz, int value) {
 33             dogz.setFood(dogz.getFood() + value);
 34         }
 35     },
 36     WOOD(2) {
 37         @Override
 38         public int getResource(LegionDogzVO dogz) {
 39             return dogz.getWood();
 40         }
 41 
 42         @Override
 43         public int getCDTime(UserLimitVO ul) {
 44             return ul.getDogzWoodSec();
 45         }
 46 
 47         @Override
 48         public boolean isCDUp(UserLimitVO ul) {
 49             return cdUp(this, ul);
 50         }
 51 
 52         @Override
 53         public void increateCDTime(UserLimitVO ul, int sec) {
 54             ul.setDogzWoodSec(sec);
 55         }
 56 
 57         @Override
 58         public void increateResource(LegionDogzVO dogz, int value) {
 59             dogz.setWood(dogz.getWood() + value);
 60         }
 61     },
 62     STONE(3) {
 63         @Override
 64         public int getResource(LegionDogzVO dogz) {
 65             return dogz.getStone();
 66         }
 67 
 68         @Override
 69         public int getCDTime(UserLimitVO ul) {
 70             return ul.getDogzStoneSec();
 71         }
 72 
 73         @Override
 74         public boolean isCDUp(UserLimitVO ul) {
 75             return cdUp(this, ul);
 76         }
 77 
 78         @Override
 79         public void increateCDTime(UserLimitVO ul, int sec) {
 80             ul.setDogzStoneSec(sec);
 81         }
 82 
 83         @Override
 84         public void increateResource(LegionDogzVO dogz, int value) {
 85             dogz.setStone(dogz.getStone() + value);
 86         }
 87     },
 88     BRONZE(4) {
 89         @Override
 90         public int getResource(LegionDogzVO dogz) {
 91             return dogz.getBronze();
 92         }
 93 
 94         @Override
 95         public int getCDTime(UserLimitVO ul) {
 96             return ul.getDogzBronzeSec();
 97         }
 98 
 99         @Override
100         public boolean isCDUp(UserLimitVO ul) {
101             return cdUp(this, ul);
102         }
103 
104         @Override
105         public void increateCDTime(UserLimitVO ul, int sec) {
106             ul.setDogzBronzeSec(sec);
107         }
108 
109         @Override
110         public void increateResource(LegionDogzVO dogz, int value) {
111             dogz.setBronze(dogz.getBronze() + value);
112         }
113     },
114     COPPERS(5) {
115         @Override
116         public int getResource(LegionDogzVO dogz) {
117             return dogz.getCoppers();
118         }
119 
120         @Override
121         public int getCDTime(UserLimitVO ul) {
122             return ul.getDogzCoppersSec();
123         }
124 
125         @Override
126         public boolean isCDUp(UserLimitVO ul) {
127             return cdUp(this, ul);
128         }
129 
130         @Override
131         public void increateCDTime(UserLimitVO ul, int sec) {
132             ul.setDogzCoppersSec(sec);
133         }
134 
135         @Override
136         public void increateResource(LegionDogzVO dogz, int value) {
137             dogz.setCoppers(dogz.getCoppers() + value);
138         }
139     };
140 
141     public static LegionDogzType getLegionDogzType(int type) {
142         for (LegionDogzType e : LegionDogzType.values()) {
143             if (e.getType() == type) {
144                 return e;
145             }
146         }
147         return null;
148     }
149 
150     /**
151      * 增加资源
152      *
153      * @param dogz
154      * @param value
155      */
156     public abstract void increateResource(LegionDogzVO dogz, int value);
157 
158     /**
159      * 获取资源
160      *
161      * @param dogz
162      */
163     public abstract int getResource(LegionDogzVO dogz);
164 
165     /**
166      * 设置 CD 时间
167      *
168      * @param ul
169      * @param sec
170      */
171     public abstract void increateCDTime(UserLimitVO ul, int sec);
172 
173     /**
174      * 获取 CD 时间
175      *
176      * @param ul
177      *
178      * @return
179      */
180     public abstract int getCDTime(UserLimitVO ul);
181 
182     /**
183      * 是否到 CD 时间
184      *
185      * @param ul
186      *
187      * @return
188      */
189     public abstract boolean isCDUp(UserLimitVO ul);
190 
191     private byte type;
192 
193     protected byte getType() {
194         return type;
195     }
196 
197     protected void setType(byte type) {
198         this.type = type;
199     }
200 
201     private LegionDogzType(int type) {
202         this.type = (byte) type;
203     }
204 
205     protected boolean cdUp(LegionDogzType type, UserLimitVO ul) {
206         if (type.getCDTime(ul) > 0) {
207             if (type.getCDTime(ul) - DateUtil.getNowSec() > 0) {
208                 return false;
209             } else {
210                 type.increateCDTime(ul, 0);
211             }
212         }
213         return true;
214     }
215 }

 

转载于:https://www.cnblogs.com/tonycody/p/3334013.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110009.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • resnet34 pytorch_pytorch环境搭建

    resnet34 pytorch_pytorch环境搭建导师的课题需要用到图片分类;入门萌新啥也不会,只需要实现这个功能,给出初步效果,不需要花太多时间了解内部逻辑。经过一周的摸索,建好环境、pytorch,终于找到整套的代码和数据集,实现了一个小小的分类。记录一下使用方法,避免后续使用时遗忘。感谢各位大佬的开源代码和注释!找到一个大佬的视频讲解和代码开源:github:https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/data_setbilb

    2022年9月1日
    6
  • 【Redis】Redis配置文件详解

    【Redis】Redis配置文件详解一、存放位置linux下一定要养成备份配置文件的习惯。我是将配置文件拷贝至/myredis目录下进行操作的;二、Units单位这个在配置文件开始位置1.配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit;2.对大小写不敏感。三、INCLUDES1.和Struts2配置文件类似,可以通过includes包含,redis.c…

    2022年6月7日
    54
  • apache24+php8配置

    apache24+php8配置电脑下载安装地址:Xampp安装完成后找到里面的apache》config》httpd.config:首先注释掉默认的路径DocumentRoot”D:/software/Xampp/htdocs”;然后再找到IfModuledir_module在后面追加:<IfModuledir_module>DirectoryIndexindex.phpindex.htmlindex.htmdefault.phpdefault.htmldefault.htmhome.

    2022年7月12日
    18
  • psm倾向得分匹配法举例_【计量地图】倾向得分匹配法(PSM)理论、操作与案例…[通俗易懂]

    这个方法的难点在于:首先,要明白反事实框架是一个什么样的东西?为什么一般把参与项目和不参与项目进行对比时会出现选择偏误?其次,搞清楚上面的原理之后,PSM真正难的是找到合适的协变量和完成两个苛刻的检验(共同支撑检验和平衡性检验)这篇文章我想达到哪些学习目标:(1)尽量汇集我看过的有用的资料(2)展示一个PSM分析的理论框架(3)针对难点说一下模型的调整问题(协变量选择、两个检验的调整)主要框架:1…

    2022年4月12日
    248
  • python中创建列表的方法_python中readlines

    python中创建列表的方法_python中readlines创建python列表方法一:直接创建列表a=[1,2,3,4,5]print(a)/usr/local/bin/python3.8/Users/sataniya/PycharmProjects/demo/demo.py[1,2,3,4,5]方法二:使用list方法a=list(“hello”)print(a)/usr/local/bin/p…

    2022年8月31日
    3
  • 成长之路——InfoQ视频心得笔记[通俗易懂]

    这期是普元信息的主任架构师,顾伟! 视频地址: http://mp.weixin.qq.com/s/0KE_CCU3cWwzvr7D5ENtsQ少年,在路上!不卑不亢!!!1:换维思考 墨菲定律:如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导致灾难,则必定有人会做出这种选择。彼得定律:向上爬的定律!错误和面对压力方面的表现!犯错:积累沉淀,不要犯相同的错误两次!2:人

    2022年2月25日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号