论java之反射机制,访问类中私有变量,调用私有方法
生活随笔
收集整理的這篇文章主要介紹了
论java之反射机制,访问类中私有变量,调用私有方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
我對于發(fā)射機(jī)制的了解就是它非常流氓,不顧成員變量或成員方法前的保護(hù)機(jī)制是什么,都可以訪問。非常霸道!
這也告訴我們開發(fā)中須謹(jǐn)慎使用,否則后果嚴(yán)重。什么訪問權(quán)限都形同虛設(shè)了
先是一個(gè)類文件
//f.java public class f{ private int i; f(){ i = -1; } private void set(int aa){ this.i = aa; } public int get(){ return this.i; } }另一個(gè)main文件
//fanshe.java import java.lang.reflect.*; public class fanshe { public static void main(String[] args) { // TODO Auto-generated method stubtry{fanshe fan = new fanshe();f f1 = new f();System.out.println(f1.get());Class c = f1.getClass();Method method = c.getDeclaredMethod("set", int.class);method.setAccessible(true);method.invoke(f1, 10000);System.out.println(f1.get());Field field = c.getDeclaredField("i");field.setAccessible(true);field.set(f1, new Integer(99090));System.out.println(f1.get());}catch(Exception e){e.printStackTrace();} } }運(yùn)行結(jié)果
轉(zhuǎn)載于:https://blog.51cto.com/8701404/1375778
總結(jié)
以上是生活随笔為你收集整理的论java之反射机制,访问类中私有变量,调用私有方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python3的 time库的使用
- 下一篇: [转]感青春