java 中,怎样判断一个变量是否是 final 常量?

内存溢出,写了个公共方法,出入类名,获取类中所有变量,设置为null,这样垃圾处理器,就能很好的回收资源,解决内存溢出问题。如果是变量是final,我赋值为null,就会... 内存溢出,写了个公共方法,出入类名,获取类中所有变量,设置为null,这样垃圾处理器,就能很好的回收资源,解决内存溢出问题。
如果是变量是final,我赋值为null,就会抛出异常。。。
另外,处理8中基本数据类型的变量,也会抛出异常

受了toudingdi 的启发,下面是我写的一个方法,参数是类,利用反射获取类中所有属性
public void realeaseRes(Object obj){
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
String fieldName = field.getName();
try {
Field f = obj.getClass().getDeclaredField(fieldName);
//抑制Java对其的检查
f.setAccessible(true);
//if(f.get(obj) instanceof Integer || f.getBoolean(obj))
f.set(obj, null);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
//当要置null的对象,是final类型时,不抛出异常,进入下一次循环
continue;
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
展开
 我来答
百度网友8927dbe5b
推荐于2018-04-04 · TA获得超过448个赞
知道小有建树答主
回答量:1011
采纳率:100%
帮助的人:286万
展开全部
第一是在声明的时候
第二是在在赋值的时候看报错不,报错说明是final常量。
不报错说明不是常量。
那你就用全局变量不就完了。
百度网友c86dad5
2012-03-29 · TA获得超过290个赞
知道小有建树答主
回答量:425
采纳率:100%
帮助的人:428万
展开全部
public static boolean isFinal(Object o){
try{
o=null;
}catch(Exception ex){
return true;
}
return false;
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ShakaVX
2012-03-29 · TA获得超过758个赞
知道小有建树答主
回答量:401
采纳率:0%
帮助的人:156万
展开全部
为啥要判断final呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
echo情已逝
2012-03-29 · TA获得超过283个赞
知道小有建树答主
回答量:391
采纳率:100%
帮助的人:89.7万
展开全部
你在申明的时候不就知道了、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式