关于java枚举,我想抽象出一个工厂,求教

bigdata-sb 2013-09-25 11:20:22

/**
* 这是一个枚举类,里面有静态方法getUserEnum(int id)
*/
public enum UserStatusEnum {
管理员(0), 会员(1);

private int id;

private UserStatusEnum(int id) {
this.id = id;
}

public int getId() {
return id;
}

public static UserStatusEnum getUserEnum(int status) {
UserStatusEnum temp = UserStatusEnum.会员;
for (UserStatusEnum e : UserStatusEnum.values()) {
if (e.getId() == status) {
temp = e;
break;
}
}
return temp;
}

}

/**
* 也有同样的方法getEnumType(int id)
*
*/
public enum NewsResourceEnum {
新华网(1), 搜狐网(2), 新浪网(3), 腾讯网(4), 雅虎新闻(5);

private int id;

private NewsResourceEnum(int id) {
this.id = id;
}

public int getId() {
return id;
}

/*
* 通过id获取相应的枚举实例
*/
public static NewsResourceEnum getEnumType(int id) {
NewsResourceEnum result = NewsResourceEnum.搜狐网;
for (int i = 0; i < NewsResourceEnum.values().length; i++) {
if (NewsResourceEnum.values()[i].getId() == id) {
result = NewsResourceEnum.values()[i];
break;
}
}
return result;
}
}
我现在就想写个工具类,泛型也可以,我需要什么类型的我就给传个什么类型过去,但是只限于枚举,然后方法里还要穿一个int id
大概是这样子的
public class EnumFactory <T extends Enum>{
public static T getEnumNewInstance(int id){
T result = null;
for(int i = 0;i<T.values().length;i++){
if(T.values()[i] == id){
result = T.values()[i];
break;
}
}
return result ;
}
}
...全文
80 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧