类中静态常量的判断
2015-08-06 14:17
274 查看
做项目的时候,对于常量的存放,很多人都放在interface中..这样的话就可以少写private static final等字段..省了代码.
如果是常用int型等常量.也会保存在枚举中.这样就可以通过枚举去取.
但是对于字符串的常量..枚举好像就没有办法去保存string类型的.
需求: 申明的常量是否存在某个常量..
所以这次还是用class是保存常量..这样的话,可以把方法放在类中,防止数据的不统一.
通过isValidService就可以判断常量参数是否在常量群中..
其中需要注意的是..fields[i].get(null) , 如果常量为static final,需要用get(null)去拿..而不是get(int)或者get(String)什么的.
然后通过反射,对申明的常量进行轮询...看是否在其中..
代码很简单..功能也很简单...方便以后使用.
如果是常用int型等常量.也会保存在枚举中.这样就可以通过枚举去取.
但是对于字符串的常量..枚举好像就没有办法去保存string类型的.
需求: 申明的常量是否存在某个常量..
所以这次还是用class是保存常量..这样的话,可以把方法放在类中,防止数据的不统一.
public class ServiceType { public static final String COMMON = "0000"; // 通用 public static final String PHONE_FARE = "0001"; // 话费 public static final String PHONE_FLOW = "0002"; // 流量 public static final String BUSINESS = "0003"; // 电商 /** * 判断服务是否在服务类型中, * * @author: wuxing * @date: 2015年8月5日 下午4:23:56 * */ public static boolean isValidService(String serviceType) { try { Class<?> c = Class.forName("com.wuxing.ServiceType"); Field[] fields = c.getDeclaredFields(); for (int i = 0; fields != null && i < fields.length; i++) { if (serviceType.equals(fields[i].get(null))) { return true; } } return false; } catch (ClassNotFoundException | IllegalArgumentException | IllegalAccessException e) { return false; } } }
通过isValidService就可以判断常量参数是否在常量群中..
其中需要注意的是..fields[i].get(null) , 如果常量为static final,需要用get(null)去拿..而不是get(int)或者get(String)什么的.
然后通过反射,对申明的常量进行轮询...看是否在其中..
代码很简单..功能也很简单...方便以后使用.
相关文章推荐
- 常用的富文本标签
- 经典面试题 之 大小端 & 内存对齐补齐
- Mac终端ls显示文件名为彩色
- jquery 其他api操作
- js实现简单的秒表走动的时钟特效
- Android 连接Mysql进行相关操作——用PHP做中介以及JSON做数据交换
- 互联网医疗
- 【暑期基础2】S HDU 2044 一只小蜜蜂... (递推)
- 把项目推送到github
- 1037. 在霍格沃茨找零钱(20)
- 财运永远跟着这16种人走 有你吗?
- HTML5画布概述
- Ehcache 整合Spring 使用页面、对象缓存
- 9.5位操作(五)——确定需要改变几个位,才能将整数A转成B
- python的闭包
- Oracle发布OSS suite新版本,适应开放的新环境
- java打包成jar
- UVa 725 Division(枚举)
- 91. Decode Ways
- iOS - UIScrollView控件实现图片缩放功能(还需补充代码)