如何遍历接口中定义的属性!!!急急急!!

艾比利夫 2015-03-13 11:40:49

public interface OrderState {

/**
* 删除
*/
int DELETED = -1;

/**
* 已创建
*/
int CREATED = 0;

/**
* 已发布
*/
int PUBLISH = 1;
/**
* 已支付
*/
int PAID = 2;
/**
* 已全部发货
*/
int DELIVERY_ALL = 3;
/**
* 交易成功
*/
int SUCCESS = 4;
}


现在我定义了一个订单状态的接口 值为-1----4

现在比如一个订单setState(5);

我想怎么遍历接口,从而发现5这个状态不在接口中,所以不合法
...全文
282 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
----Neal---- 2015-03-14
  • 打赏
  • 举报
回复
import java.lang.reflect.Field;
public class Main {
	public static void main(String[] args) throws Exception {
		Field[] fs = OrderState.class.getDeclaredFields();
		for(Field f : fs){
			System.out.println(f.getName() + ":" + f.getInt(null));
		}
	}
}
运行结果:
DELETED:-1
CREATED:0
PUBLISH:1
PAID:2
DELIVERY_ALL:3
SUCCESS:4
星辰的悸动 2015-03-14
  • 打赏
  • 举报
回复
定义为数组,超出数组范围则不合法 比如 public statid final int[] arr = { 1, 2, 3, 4 }; public boolean isLegal(int num) { int length = arr.length; return ( num < 0 || num > lenght ); }
普凡 2015-03-13
  • 打赏
  • 举报
回复
用枚举实现这种需求 更加合适。 接口通常定义必要操作(方法)
艾比利夫 2015-03-13
  • 打赏
  • 举报
回复
自己顶一下,请教大神~

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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