1. 程式人生 > >JAVA 反射機制,invoke呼叫用法一個小的用法

JAVA 反射機制,invoke呼叫用法一個小的用法

JAVA反射機制基礎:

參考:http://lavasoft.blog.51cto.com/62575/43218/

http://java.ccidnet.com/art/3539/20070924/1222147_1.html

JAVA invoke的呼叫:

有如下的類

public class ClassA{
 private int Method1(String[] strs){
     int num=0;
     for(String str:strs)
          num++;
     return num;  
 }
}

現在我們需要測試這個類中的Method1方法,按照java的反射機制我們可以用如下程式碼執行這個私有方法:

Class ownerClass=ClassA.class;
Method method= ownerClass.getDeclaredMethod("Method1");
method.setAccessible(true);
String[] strs= new String[]{"ssss","bbbb"};
ClassA ClassAinstance= new ClassA();
method.invoke(ClassAInstance,strs);
會產生引數數目不匹配的異常,原因是invoke函式的動態引數匹配,會講strs對映到每一個引數上,而不是一個數組變數,解決方案:
Class ownerClass=ClassA.class;
Method method= ownerClass.getDeclaredMethod("Method1");
method.setAccessible(true);
String[] strs= new String[]{"ssss","bbbb"};
Object[] args=new Object[1];
args[0]=strs;
ClassA ClassAinstance= new ClassA();
method.invoke(ClassAInstance,args);



相關推薦

JAVA 反射機制invoke呼叫用法一個用法

JAVA反射機制基礎: 參考:http://lavasoft.blog.51cto.com/62575/43218/ http://java.ccidnet.com/art/3539/20070924/1222147_1.htmlJAVA invoke的呼叫: 有如下的類

Java反射機制通過物件訪問呼叫類的私有成員屬性或者方法

Java反射機制原理 Java中萬物皆物件,類class也是物件,是一個名為Class的類的物件。 所以就可以通過這個Class類型別的物件class,用物件訪問類的屬性和方法。 Class是對類的抽象(每個類對應一份位元組碼)。一般情況下,比如A a

javajava反射機制動態獲取對象的屬性和對應的參數值並屬性按照字典序排序Field.setAccessible()方法的說明【可用於微信支付 簽名生成】

modifier 直接 this 字段值 1-1 讓我 toupper ima play 方法1:通過get()方法獲取屬性值 package com.sxd.test.controller; public class FirstCa{ private

Java學習總結(十四)——java反射機制利用反射動態創建對象

Java反射 動態創建對象 一.Java反射機制1.什麽是反射:反射就是把Java類中的各種成份影射成一個個的Java對象。例:一個類有:成員變量,方法,構造方法等,包等等信息,利用反射技術可以對一個類進行剖析,把各個組成部分影射成一個個對象。2.Java反射常用類:(1)Class類—可獲取類和類的

通過java反射機制Method獲取出來的引數名為

記錄2018年我遇見的一個大坑!!!!! 前言 具體介紹 出現問題 解決 前言 最近我一直在嘗試手寫一個簡單的框架,其中,在補全mvc框架的時候,遇到了Method方法關於版本以及一些奇奇怪怪的坑。 具體介紹

Spring學習5(1):IoC容器之IoC概述JAVA反射機制資源訪問器

spring學習5(1)  在經過了對spring框架基本開發的瞭解以及對spring boot流程的學習,《精通spring4.x…》這本書正式開始了spring的講解,我也跟隨著這本書的腳步進行學習。 IoC概述  首先需要學習的是spring的IoC技術,

SpringBoot利用java反射機制實現靈活讀取Excel表格中的資料和匯出資料至Excel表格

如果直接把固定Excel表格模板中的資料匯入資料庫,直接將Excel中的資料讀取出來,再存入資料庫中即可,將資料匯出至固定的Excel模板方法類似。但是,有時候,開發製作的模板與客戶需要的往往有些許差別(欄位排版、欄位數量等)。為了實現匯入匯出的靈活性,將利用java的反射機

java反射機制註解類解讀

1.元資料的英文關於資料的組織,域資料及其關係的資訊,簡言之,元資料就是關於資料的資料(英文:間位),不同的領域有不同的理解:在軟體構造領域,元資料被定義為:。在程式中不是被加工的物件,而是通過其值的改變來改變程式的行為的資料它在執行過程中起著以解釋方式控制程式行為的作用在程

通過java反射機制獲取物件的屬性和值(包括所有繼承的父類)

      java的反射機制提供了兩種方法:    getDeclaredFields() :該方法能獲取到本類的所有屬性,包括private,protected和public,但不能獲取到繼承的父類的屬性。    getFields():既能獲取本類的屬性也能得到父類的

簡談Java 反射機制動態代理

也有 object 持久化數據 多場景 字節 問控制 事情 獲取 ted 談談 Java 反射機制,動態代理是基於什麽原理?小編整理了一些java進階學習資料和面試題,需要資料的請加JAVA高階學習Q群:701136382 這是小編創建的java高階學習交流群,加群一起交流

JAVA的newInstance()和new的區別(JAVA反射機制通過類名來獲取該類的例項化物件)

newInstance()是實現IOC、反射、面對介面程式設計 和 依賴倒置 等技術方法的必然選擇,new 只能實現具體類的例項化,不適合於介面程式設計。 裡面就是通過這個類的預設建構函式構建了一個物件,如果沒有預設建構函式就丟擲InstantiationException, 如果沒有訪問預設建構函式的許可權

利用java反射機制實現對類的私有變數和私有方法的訪問

記得有一句很有名的話:No reflection ,no frameworks 這一句短短的話道出了java 反射機制的強大。 java關於反射機制的包主要在java.lang.reflect中,structs,hibernate,spring等框架都是基於java的反射機制。 下面是一個關於利用j

通過java反射機制獲取對象的屬性和值(包括所有繼承的父類)

原創 getc getname 因此 declared protect 版權 str 來源 java的反射機制提供了兩種方法: getDeclaredFields() :該方法能獲取到本類的所有屬性,包括private,protected和public,但不能獲取到

利用java反射機制一次性呼叫實體類get和set方法簡化更多程式碼。

外部呼叫getProperty方法時只需要傳入實體物件即可;例如TestUtil.getProperty(new User()); 外部呼叫setProperty方法時只需要傳入實體物件和要set的值即可;例如TestUtil.setProperty(new User()

java中的反射機制invoke典型用法

java中的反射機制通過invoke方法來實現,這中間主要是是通過一下幾個函式實現的 Class.forName ("類名") Class.forName ("類名").newInstance Class.getMethod ("呼叫的方法名",class[]{引數類列表

java反射機制之Method invoke執行呼叫方法例子

昨天在群裡跟大家討論了下java反射呼叫可變引數的問題,這個問題起因是我們需要反射呼叫另一個部門提供的方法,我同事說java不能反射呼叫可變引數的方法,於是我寫了個demo證明了他這個觀點的錯誤。但是測試過程中,有一點我不明白,就是反射呼叫可變引數的方法時,為什麼一定

Java反射機制 invoke呼叫含多個引數的方法

通過Java的反射機制呼叫某個方法,並傳入引數。 1.只傳入一個引數hello world: import java.lang.reflect.Method; import java.util.Date; public class InvokeMethodTest {

Java反射機制demo(五)—獲得並調用一個類中的方法

color 擁有 oca logs over super getmethod equals() bool 這個demo在使用反射機制操作屬性之前,主要原因是因為在.class文件字節碼中,方法排在屬性的前面。 1,獲得一個類中的方法 先看一下方法和運行結果。獲取所有的方

Java反射機制能夠獲取的信息與應用

rri 代理 pan [] reflect 語言 子類 list tro 一、什麽是Java反射機制? 【1】反射機制是在運行狀態中,對於任何一個類,都能夠知道這個類的所有屬性和方法; 【2】對於任意一個對象,都能夠調用它的任意一個屬性和方法; 像這種動態獲取類的信

利用java反射機制對方法進行呼叫

轉自:http://blog.csdn.net/coolcoffee168/article/details/5835143 基本步驟:首先獲取Class物件,然後用該物件獲取方法。具體的就看程式碼吧。對照本文最後的結果,會更好的理解反射機制。