南昌集团网站建设,上杭县建设局网站,深圳网站制作公司排名,指数函数图像反射是很强大的#xff0c;谁说的final修饰的就不能改变#xff0c; 通过反射获取成员变量#xff0c;之后可以取消访问修饰符#xff0c;也就是说private的也可以访问#xff0c; 在修改常量#xff08;final修饰的#xff09;#xff0c;之后就可以对其做任何操作了 …反射是很强大的谁说的final修饰的就不能改变 通过反射获取成员变量之后可以取消访问修饰符也就是说private的也可以访问 在修改常量final修饰的之后就可以对其做任何操作了 如下通过一个方法交换两个Integer对象的值 package ni.jun.yang.test;import java.lang.reflect.Field;
import java.lang.reflect.Modifier;public class Test {public static void main(String[] args) {Integer a 10;Integer b 20;System.out.println(交换前aa,bb); change(a,b); System.out.println(交换后aa,bb);}public static void change(Integer a, Integer b) {// System.out.println(交换后ab,ba);
// System.exit(0);try {Field field Integer.class.getDeclaredField(value);field.setAccessible(true); //取消访问修饰符//public final class Field extends AccessibleObject implements Member//值为 true 则指示反射的对象在使用时应该取消 Java语言访问检查。//值为 false 则指示反射的对象应该实施 Java语言访问检查。 //修改常量finalField modifiersField Field.class.getDeclaredField(modifiers);modifiersField.setAccessible(true);modifiersField.setInt(field, field.getModifiers() ~Modifier.FINAL);//交换int temp b;field.set(b, a);field.set(a, new Integer(temp));} catch (Exception e) {e.printStackTrace();}}} 转载于:https://www.cnblogs.com/nijunyang/p/7668179.html