记录Java中修改final值

A a = new A(); //先把name字段通过反射取出来 Field myVar = a.getClass().getDeclaredField("myVar"); myVar.setAccessible(true); //通过反射把myVar的final修饰符去掉 Field modifiersField = Field.class.getDeclaredField("modifiers"); modifiersField.setAccessible(true); modifiersField.setInt(myVar, myVar.getModifiers() & ~Modifier.FINAL); //设置值 myVar.set(a, 30); //增加上final修饰符 modifiersField.setInt(myVar, myVar.getModifiers() & ~Modifier.FINAL); System.out.format("%s",a.toString()); // 再使用反射再把name值取出来 Object name = myVar.get(a); // 把取出来的name值进行打印 System.out.println(name.toString());
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章