程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中反射的一個復雜運用

Java中反射的一個復雜運用

編輯:關於JAVA

Java中反射的一個復雜運用。本站提示廣大學習愛好者:(Java中反射的一個復雜運用)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中反射的一個復雜運用正文


簡介

首先引見一些不太適用的解釋:JAVA反射機制是在運轉形態中,關於恣意一個類,都可以知道這個類的一切屬性和辦法;關於恣意一個對象,都可以調用它的恣意辦法和屬性;這種靜態獲取信息以及靜態調用對象辦法的功用稱為java言語的反射機制。

復雜運用

反射,在java中是十分罕見和好用的一種方式,(但是大家需求知道,他的效率是比擬低的,所以要慎用)當然在基於java言語而發生的Android中也是可以運用的,我們可以運用反射來獲取一些零碎並不開放,但是存在的類,從而調用他的一些辦法,上面就復雜的寫一下,應用java反射來獲取類和調用它的辦法的完成。

//需求被反射調用的類的途徑
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是參數類型    
  Method stringToUp = reflect.getDeclaredMethod("stringToUp", String.class);    
  //取消訪問公有辦法的合法性反省    
  stringToUp.setAccessible(true);    
 //調用stringToUp()辦法,第一個參數表示對應的類,第二個是辦法的參數 
  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

幾乎就是完滿。

總結

好了,以上就是這篇文章的全部內容了,反射在Android中的使用范圍也很多,比方我們項目有多個module的時分,你想在module外面調用主的順序的一個辦法你就可以這麼干,也可以用反射來調用一些零碎為地下的辦法,但是效率不太高。希望本文的內容對大家學習或許運用Java中的放射能有所協助,假如有疑問大家可以留言交流。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved