反射中getDeclaredConstructors和getConstructors两个方法的区别,然后setAccessible什么时候用,作用是什么?
生活随笔
收集整理的這篇文章主要介紹了
反射中getDeclaredConstructors和getConstructors两个方法的区别,然后setAccessible什么时候用,作用是什么?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.?getDeclaredConstructors和getConstructors的區別
1.1?getDeclaredConstructors和getConstructors都能得到默認的public構造函數
1.2?getDeclaredConstructors可以得到所有訪問權限的構造函數;getConstructors只能得到public修飾的構造函數。
?
2. setAccessible
2.1 代碼和目錄結構
2.2 非public修飾的類A
2.3 對類A反射的測試類TestReflect
2.4 在非public修飾的類A中自己手動定義一個public的無參構造函數,仍然無法通過反射創建對象
2.5 將類A改回默認構造函數的情況,然后使用 setAccessible(true)方法。通過以下結果,說明setAccessible在屬性、方法、構造方法調用時,不僅僅更改屬性、方法、構造方法的訪問權限,還能更改類的訪問權限;所以當類的訪問權限非public時,即使屬性、方法、構造方法的訪問權限是public,仍然要調用setAccessible方法。
?
總結
以上是生活随笔為你收集整理的反射中getDeclaredConstructors和getConstructors两个方法的区别,然后setAccessible什么时候用,作用是什么?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是代理模式?代理模式有什么用?通过一
- 下一篇: mybatis中getMapper是怎么