Java 枚举活用
/**
* 联盟神兽、神兽资源枚举
*
* @author TonyCody
* @author 13-9-22
* @time 下午5:35
*/
public enum LegionDogzType { FOOD(1) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getFood();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzFoodSec();
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzFoodSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setFood(dogz.getFood() + value);
}
},
WOOD(2) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getWood();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzWoodSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzWoodSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setWood(dogz.getWood() + value);
}
},
STONE(3) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getStone();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzStoneSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzStoneSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setStone(dogz.getStone() + value);
}
},
BRONZE(4) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getBronze();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzBronzeSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzBronzeSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setBronze(dogz.getBronze() + value);
}
},
COPPERS(5) {
@Override
public int getResource(LegionDogzVO dogz) {
return dogz.getCoppers();
} @Override
public int getCDTime(UserLimitVO ul) {
return ul.getDogzCoppersSec();
} @Override
public boolean isCDUp(UserLimitVO ul) {
return cdUp(this, ul);
} @Override
public void increateCDTime(UserLimitVO ul, int sec) {
ul.setDogzCoppersSec(sec);
} @Override
public void increateResource(LegionDogzVO dogz, int value) {
dogz.setCoppers(dogz.getCoppers() + value);
}
}; public static LegionDogzType getLegionDogzType(int type) {
for (LegionDogzType e : LegionDogzType.values()) {
if (e.getType() == type) {
return e;
}
}
return null;
} /**
* 增加资源
*
* @param dogz
* @param value
*/
public abstract void increateResource(LegionDogzVO dogz, int value); /**
* 获取资源
*
* @param dogz
*/
public abstract int getResource(LegionDogzVO dogz); /**
* 设置 CD 时间
*
* @param ul
* @param sec
*/
public abstract void increateCDTime(UserLimitVO ul, int sec); /**
* 获取 CD 时间
*
* @param ul
*
* @return
*/
public abstract int getCDTime(UserLimitVO ul); /**
* 是否到 CD 时间
*
* @param ul
*
* @return
*/
public abstract boolean isCDUp(UserLimitVO ul); private byte type; protected byte getType() {
return type;
} protected void setType(byte type) {
this.type = type;
} private LegionDogzType(int type) {
this.type = (byte) type;
} protected boolean cdUp(LegionDogzType type, UserLimitVO ul) {
if (type.getCDTime(ul) > 0) {
if (type.getCDTime(ul) - DateUtil.getNowSec() > 0) {
return false;
} else {
type.increateCDTime(ul, 0);
}
}
return true;
}
}
Java 枚举活用的更多相关文章
- Java 枚举用法详解
概念 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum 关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, GR ...
- java 枚举类型分析
最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enum ColorSelect { RED_BAGE = 0, GREEN_BAGE, ...
- 【转】java枚举类型enum的使用
原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到 ...
- 【转】Java 枚举7常见种用法
原文网址:http://softbeta.iteye.com/blog/1185573 Java 枚举7常见种用法 博客分类: java java枚举enmu 原创地址:http://blog.li ...
- 【转】掌握java枚举类型(enum type)
原文网址:http://iaiai.iteye.com/blog/1843553 1 背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用 ...
- 转载 java枚举类型enum的使用 (原文地址:http://blog.csdn.net/wgw335363240/article/details/6359614)
java枚举类型enum的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java中定义的常量值不采用enmu枚举类型,而采用public final static 类型来定义呢?以前我们都是采 ...
- Java枚举类使用
用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. p ...
- Java 枚举类型简介
目录 Java 枚举示例 Java 枚举构造函数 枚举类型是用于定义常量集合的特殊类型,更确切的说,JAVA枚举类型是一种特殊的 java 类.枚举类型可以包含常量.方法等.在 java5 中添加了 ...
- Java 枚举(enum) 详解7种常见的用法
Java 枚举(enum) 详解7种常见的用法 来源 https://blog.csdn.net/qq_27093465/article/details/52180865 JDK1.5引入了新的类型— ...
随机推荐
- mysql内存消耗分析
最近有些生产服务器老是mysql内存不停得往上涨,开发人员和维护反馈,用了不少的临时表,问题时常线上发生,测试又一直比较难重现. 经观察mysql内存的os占用趋势,发现从8:40开始,mysql内存 ...
- [CLK Framework] CLK.Threading.PortableTimer - 跨平台的Timer类别
[CLK Framework] CLK.Threading.PortableTimer - 跨平台的Timer类别 问题情景 开发应用程式的时候,免不了需要加入一些定时执行的设计,例如说:定时更新画面 ...
- IOS网络编程之请求内容
资料均来自互联网,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 人魔七七:http://www.cnblogs.com/qiqibo/ 一个http请求只要由三 ...
- [原创]winform_PC宴会图片抽奖/文字抽奖
14年6月 好友结婚 14年4月左右知道他们婚礼由迎宾照抽奖的环节 问我有没有可以用的抽奖软件 我网上找了一会儿,就放弃了,自己做一个更快不是? 14年6月,PC宴会图片抽奖软件成功使用 --- 操作 ...
- 关于DOM操作的性能优化
最著名的有关用js操作dom的观点是:js和dom是独立的小岛,用桥实现两者的联系,但桥很窄,要过路费,所以我们要尽最大可能减少过桥的次数.下面代码演示了用js操作dom的innerHTML,且一下修 ...
- web api 限制单个IP在一定时间内访问次数
ps:下面实例是每隔30秒访问次数不超过3次 1.Filter: using Infrastructure.Log; using Infrastructure.Web; using Lemon.Sta ...
- 如何查询拥有执行某个Tcode权限所有人员
方法很简单,如下 一:Tcode:S_BCE_68001400二:输入你想查询的Tcode,例如:SE38 打开如下图所示,然后执行即可 三:AUTH(关于权限的控制),打开如下图所示.上图“ ...
- 关于ApplicationPoolIdentity
一直以来IIS中的网站默认都是以network service在运行,但是从IIS7开始,默认会以ApplicationPoolIdentity运行. 这个账户比较特殊,是一种虚拟帐户,你无法在计算机 ...
- Android项目实战(十五):自定义不可滑动的ListView和GridView
不可滑动的ListView (RecyclweView类似) public class NoScrollListView extends ListView { public NoScrollListV ...
- Android 在内部存储读写文件
文件读写操作* Ram内存:运行内存,相当于电脑的内存* Rom内存:内部存储空间,相当于电脑的硬盘* sd卡:外部存储空间,相当于电脑的移动硬盘在内部存储空间中读写文件>小案例:用户输入账号密 ...