1、常量描述註解 ConstName
package com.vim.common.consts;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD )
public @interface ConstName {
public String value() default "";
}
2、常量類
package com.vim.common.consts.bis;
import com.vim.common.consts.ConstName;
public interface ProductStateConsts {
@ConstName("下架")
public static byte PRODUCT_STATE_OFFSALE = 0;
@ConstName("上架")
public static byte PRODUCT_STATE_ONSALE = 1;
}
3、讀取常量文本
package com.vim.common.utils;
import com.vim.common.consts.ConstName;
import java.lang.reflect.Field;
public class ConstUtils {
public static String getBisConstName(Class<?> clazz,int code){
Field fields[]=clazz.getDeclaredFields();
for(Field f:fields){
try {
Integer k = new Integer(f.getInt(null));
ConstName cn = f.getAnnotation(ConstName.class);
if(null!=cn){
String value = cn.value();
if(k.intValue() == code) return value;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
}
4、常量類使用
package com.vim.modules.web.model;
import java.io.Serializable;
public class Product implements Serializable {
/**
* 狀態
*/
private Byte state;
public Byte getState() {
return state;
}
public void setState(Byte state) {
this.state = state;
}
}