java反射——關於權限和異常

  使用Java反射API的一個重要好處是可以繞過Java語言中默認的訪問控制權限。Constructor、Filed和Method都繼承自java.lang.reflect.AccessibleObject,其中的setAccessible方法可以用於設置是否繞過默認的權限檢查,否則,訪問非public的方法或者字段將產生IllegalAccessException異常。
    而在利用Invoke方法來調用方法是,如果方法本身拋出異常,invoke方法將拋出InvocationTargetException異常,通過getCause方法可以獲取實際的異常信息。
    在Java7中,爲所有與反射相關的異常類添加了一個統一的父類java.lang.ReflectiveOperationException,在處理反射相關的異常時可以直接捕獲該異常而不用分別捕獲各個異常子類。

關於Java動態性,除了反射機制外,Java7中提供了一種新的動態調用Java程序的方法,即方法句柄MethodHandler,有些類似於C中的函數指針。此部分內容將在後續的文章中進行單獨的分析。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章