java enum 定义属性_Java枚举中的自定义属性最好不是[name]

枚举是有限的数据集合:是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内

在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。

枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。 java如下定义:

package com.uet.course.enums;

/**

* 教材:册

* @author huangjs

* @version 2015年2月7日9:44:34

*/

public enum Volumns {

ALL(0,"全册"),

UP(1,"上册"),

DOWN(2,"下册")

;

Volumns(){

}

Volumns(int id,String name){

this.id=id;

this.name=name;

}

private int id;

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

} struts2中定义获取:

public Volumns[] getVolumns(){

return Volumns.values();

} 前台freemarker循环展示:

---选择册---

selected="selected" #if>>

${volumn.name}

#list>

这样的获得name属性是会报错的。

用debug模式调适,我们可以看到获得得的数组中每个元素是这样的:

18a0cc57b413a68589aec33bb6c8b089.png

每个元素有两个name属性,一个是自身所带。另外一个是我们自定义的属性。

所以我们需要将枚举类改为下面这样:

package com.uet.course.enums;

/**

* 教材:册

* @author huangjs

* @version 2015年2月7日9:44:34

*/

public enum Volumns {

ALL(0,"全册"),

UP(1,"上册"),

DOWN(2,"下册")

;

Volumns(){

}

Volumns(int id,String title){

this.id=id;

this.title=title;

}

private int id;

private String title;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getTitle() {

return title;

}

public void setTitle(String title) {

this.title = title;

}

public static int getIdByTitle(String title,int default_value){

Volumns[] all=Volumns.values();

for(Volumns item : all){

if(title.equals(item.getTitle())){

return item.getId();

}

}

return default_value;

}

} 使用 title来代替我们自定义的name属性。

debug时可以看到如下:

5191498e0d039382b2837bb7f70f5331.png

前台freemarker取的时候,使用 title属性即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值