使用反射修改私有静态常量值(private static final)

原创
2012/08/12 12:39
阅读数 7.2K

import java.lang.reflect.*; 
 
public class EverythingIsTrue { 
   
static void setFinalStatic(Field field, Object newValue) throws Exception { 
      field
.setAccessible(true); 
 
     
Field modifiersField = Field.class.getDeclaredField("modifiers"); 
      modifiersField
.setAccessible(true); 
      modifiersField
.setInt(field, field.getModifiers() & ~Modifier.FINAL); 
 
      field
.set(null, newValue); 
   
} 
   
public static void main(String args[]) throws Exception {       
      setFinalStatic
(Boolean.class.getField("FALSE"), true); 
 
     
System.out.format("Everything is %s", false); // "Everything is true" 
   
} 
} 

更多详细:http://stackoverflow.com/questions/3301635/change-private-static-final-field-using-java-reflection

展开阅读全文
加载中
点击加入讨论🔥(1) 发布并加入讨论🔥
1 评论
1 收藏
1
分享
返回顶部
顶部