Java中反射的一個簡單使用
簡介
首先介紹一些不太實用的解釋:JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意方法和屬性;這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能稱為java語言的反射機制。
簡單使用
反射,在java中是非常常見和好用的一種方式,(但是大家需要知道,他的效率是比較低的,所以要慎用)當然在基于java語言而產(chǎn)生的Android中也是可以使用的,我們可以使用反射來獲取一些系統(tǒng)并不開放,但是存在的類,從而調(diào)用他的一些方法,下面就簡單的寫一下,利用java反射來獲取類和調(diào)用它的方法的實現(xiàn)。
//需要被反射調(diào)用的類的路徑 String className = "com.example.test.JavaReflect";Class reflect = null; try { //通過路徑來獲取java類 reflect = Class.forName(className); //實例化對應得類 Object javaReflect = reflect.newInstance(); if(null != javaReflect) { //反射出該Class類中的stringToUp()方法 stringToUp是方法名,String.class是參數(shù)類型 Method stringToUp = reflect.getDeclaredMethod("stringToUp", String.class); //取消訪問私有方法的合法性檢查 stringToUp.setAccessible(true); //調(diào)用stringToUp()方法,第一個參數(shù)表示對應的類,第二個是方法的參數(shù) String str = (String) stringToUp.invoke(javaReflect,"java reflect test"); System.out.println("result:"+str); } }catch (Exception e) { e.printStackTrace(); }
我們來看一下,在stringToUp里面做了什么:
public String stringToUp(String str){ return str.toUpperCase(); }
其實就是一個對字符串轉換成大寫,然返回,好了我們來看一下輸出結果:
01-02 08:09:11.959 6150-6150/com.zxf.alpha I/System.out: result:JAVA REFLECT TEST
簡直就是完美。
總結
好了,以上就是這篇文章的全部內(nèi)容了,反射在Android中的應用范圍也很多,比如我們項目有多個module的時候,你想在module里面調(diào)用主的程序的一個方法你就可以這么干,也可以用反射來調(diào)用一些系統(tǒng)為公開的方法,但是效率不太高。希望本文的內(nèi)容對大家學習或者使用Java中的放射能有所幫助,如果有疑問大家可以留言交流。
相關文章
SpringCloud中數(shù)據(jù)認證加密的方法總結
在當今分布式系統(tǒng)的日益復雜和信息傳遞的廣泛網(wǎng)絡化環(huán)境中,數(shù)據(jù)的加密和認證作為保障信息傳遞安全的關鍵手段,Spring?Cloud,作為一套構建微服務架構的強大框架,提供了多種靈活而強大的數(shù)據(jù)加密和認證方式,本文給大家總結了SpringCloud數(shù)據(jù)認證加密的方法2024-03-03SpringBoot整合ShardingSphere5.x實現(xiàn)數(shù)據(jù)加解密功能(最新推薦)
這篇文章主要介紹了SpringBoot整合ShardingSphere5.x實現(xiàn)數(shù)據(jù)加解密功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-06-06基于OAuth2.0授權系統(tǒng)的驗證碼功能的實現(xiàn)
本篇教程給大家分享基于OAuth2.0授權系統(tǒng)的驗證碼功能的實現(xiàn),驗證碼功能的實現(xiàn)是采用Zuul網(wǎng)關的Filter過濾器進行校驗驗證碼,具體實現(xiàn)代碼跟隨小編一起看看吧2021-05-05線程局部變量的實現(xiàn)?ThreadLocal使用及場景介紹
這篇文章主要為大家介紹了線程局部變量的實現(xiàn)?ThreadLocal使用及場景詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01