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引入了新的类型— ...
随机推荐
- JavaScripts 基础详细笔记整理
一.JS简介 JavaScript 是 Web 的编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理 ...
- [ASP.NET MVC] 使用Bootsnipp样式
[ASP.NET MVC] 使用Bootsnipp样式 前言 在「[ASP.NET MVC] 使用Bootstrap套件」这篇文章中,介绍了如何在Web项目里使用Bootstrap套件,让用户界面更加 ...
- 【JavaEE】SSH+Spring Security自定义Security的部分处理策略
本文建立在 SSH与Spring Security整合 一文的基础上,从这篇文章的example上做修改,或者从 配置了AOP 的example上做修改皆可.这里主要补充我在实际使用Spring Se ...
- 文科生也能看懂的iptables教程(转载)
据说还是个MM, 写得很通俗易懂, 还很诙谐, 原文:http://dallascao.com/cn/iptables-tutorial-for-newbies/ 对于斗胆开始玩vps的文科生来讲,i ...
- express新旧语法对比
备个份, 原文: http://stackoverflow.com/questions/25550819/error-most-middleware-like-bodyparser-is-no-lon ...
- UUID(uuid)js 生成
全局唯一标识符(GUID,Globally Unique Identifier)也称作 UUID(Universally Unique IDentifier) . GUID是一种由算法生成的二进制长度 ...
- iOS加载程序视图的方式
The UIViewController class provides built-in support for loading a view controller's views whenever ...
- 【读书笔记】iOS-KVC
一,KVC即键/值编码. 二,KVC的基本调用包括-valueForKey:和-setValue:forKey:. 三,对于KVC,Cocoa自动放入和取出标量值.也就是说,当使用setValueFo ...
- iOS背景模糊效果3中方法总结
1.首先得把界面转化成图片,给uiview加一个类目如下: #import "UIView+Screen.h" @implementation UIView (Screen) // ...
- android中的坐标系以及获取坐标的方法
android中有两种坐标系,分别称之为Android坐标系和视图坐标系.而对应的也有一些相关的方法可以获取坐标系中的 坐标值.只有搞清楚这些区别,才能在实现的时候不至于出错或者得不到你想要的效果. ...