Java中的自定义枚举优化
在性能优化中,枚举的每一个都是一个实例,比较耗内存,采用自定义注解能很好的解决这个问题
public class SHAPE {
public static final int RECTANGLE=0;
public static final int TRIANGLE=1;
public static final int SQUARE=2;
public static final int CIRCLE=3;
@Documented
//flag = true表示可以选两个值 取或 TRANT|MENDT 这样的形式
//value表示那些值可以用
@IntDef(flag = true,value ={RECTANGLE,TRIANGLE,SQUARE,CIRCLE})
//表示表示需要在什么级别保存该注释信息,用于描述注解的生命周期
@Retention(RetentionPolicy.RUNTIME)
public @interface Model{
}
//默认的值
private @Model int value = RECTANGLE;
public void setValue(@Model int value){
this.value = value;
}
public int getValue(){
return this.value;
}
}
使用
SHAPE sp = new SHAPE();
sp.setValue(SQUARE|SHAPE.CIRCLE);
sp.getValue();