java 内部枚举类_Java 使用枚举类的实例

枚举类相信不陌生,但实际开发中或者接手之前的代码,发现大部分还是使用常量Constant来替代,其实枚举类拥有更多的优点。

这里我们只讲一个开发中实际用到的例子,现在有如下的一个场景:

假设现在有一个实体类User,有一个属性status,如果status为0表示正常,status为1表示无效,而我们在数据库中存储是数值,但前端客户所看见的应该是字符串,如何来建立起这么一个关系?这里就可以用到枚举类,代码如下:

public class User implements Serializable {

private static final long serialVersionUID = 5550303936960514419L;

/** id */

private Integer id; //set,get方法省略

/** 标题 */

private String userName;//set,get方法省略

/** 状态 */

private String status;//set,get方法省略

public static enum statusEnum{

STATUS_ZHENCHANG (0, "正常"),

STATUS_WUXIAO (1, "无效");

private final int type;

private final String desc;

statusEnum(int type, String desc) {

this.type = type;

this.desc = desc;

}

public int getType () {

return type;

}

public String getDesc () {

return desc;

}

public static String getDesc (int index) {

for (statusEnumc : statusEnum.values ()) {

if (c.getType () == index) {

return c.desc;

}

}

return null;

}

}

}

我们自己在User内部定义一个status的枚举类,来描述其状态值和说明,这里可以很直观的它们的关系,关于枚举类的基本用法可以自行了解。

接着,我们从数据库中查出了User,将status属性通过相应的映射为字符串描述,如下:

User u = new User();

u.setStatus(User.statusEnum.getDesc(u.getStatus()); //status,0:正常 1:无效

System.out.println(u.getStatus());//输出为正常

这样就通过枚举类型,可以自定义的,并且很优美的进行开发工作,值得注意的是如上面的getDesc是我们自己写的,枚举类自己提供了一些操作本身元素的方法,如statusEnum.values就是返回所有的元素。

如有错误,欢迎大家指正。


版权声明:本文为weixin_31026805原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。