1. 程式人生 > >利用Java反射機制呼叫含陣列引數的方法

利用Java反射機制呼叫含陣列引數的方法

–一個含有這種方法的Java類–

public class Dao {

public void Method2(String[] params){

//do something

}

}

– 正確的方法–

public class Test {

public static void main(String[] args) throws Exception{
Class classToCall = Class.forName(“Dao”);
String[] argu ={“1″,”2″};
Method methodToExecute = classToCall.getDeclaredMethod(“Method2″, new Class[]{String[].class}

);
methodToExecute.invoke(classToCall.newInstance(), new Object[]{argu});

}

}

– 錯誤的方法,會得到異常 java.lang.IllegalArgumentException: wrong number of arguments

public class Test {

public static void main(String[] args) throws Exception{
Class classToCall = Class.forName(“Dao”);
String[] argu ={“1″,”2″};
Method methodToExecute = classToCall.getDeclaredMethod(“Method2″, new Class[]{String[].class}

);
methodToExecute.invoke(classToCall.newInstance(), argu);

}

}

原因:invoke方法的第二個引數接受的是Object陣列,並把陣列的每一個元素作為方法的一個引數。所以如果某一個引數為陣列,要在外面用new Object[]{}包起來



相關推薦

利用Java反射機制呼叫陣列引數方法

–一個含有這種方法的Java類– public class Dao { public void Method2(String[] params){ //do something } } – 正確的方法– public class Test { public static void main

利用JAVA反射機制實現調用私有方法

parse try ble cat 權限 利用 enabled tde mod 1.fragment是AccessibilityFragment的對象。須要被調用的方法的類。 setAccessible(true)並非將方法的訪問權限改成了public。而是取

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

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

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

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

利用java反射機制實現javaweb自動呼叫類的方法

public class BookServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequ

利用java反射機制實現List<Map<String, Object>>轉化為List<JavaBean>

tis one row 註解 網上 span mybatis star mod 最近在用mybatis做項目,遇到將date格式化顯示到easyui的問題,需要將List<Map<String, Object>>轉化為List<JavaBean

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

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

利用Java反射機制讀取註解

java程式碼:  package ORM; @SxtTable("tb_student") public class SxtStudent { @SxtField(columnName="id", type="int", length=10) private i

利用Java反射機制實現物件相同欄位的複製

一、如何實現不同型別物件之間的複製問題? 1、為什麼會有這個問題? 近來在進行一個專案開發的時候,為了隱藏後端資料庫表結構、同時也為了配合給前端一個更友好的API介面文件(swagger API文件),我採用POJO來對應資料表結構,使用VO來給傳遞前端要展示的資料,同時使用DTO來進行請求

利用Java反射機制實現對象相同字段的復制

rop 對象復制 bject 不同的 turn 有一個 運算符 mes 不讓 一。如何實現不同類型對象之間的復制問題? 1、為什麽會有這個問題? 近來在進行一個項目開發的時候,為了隱藏後端數據庫表結構、同時也為了配合給前端一個更友好的API接口文檔(swagger API文

利用java反射機制實現讀取excel表格中的資料

如果直接把excel表格中的資料匯入資料庫,首先應該將excel中的資料讀取出來。 為了實現程式碼重用,所以使用了Object,而最終的結果是要獲取一個list如List<User>、List<Book>等,所以需要使用泛型機制去實現。下面會給出程式

利用java反射機制模擬spring IOC原理的實現

在Java中反射和動態代理機制很強大,通過反射機制在執行時獲取資訊。用於實現IOC。 代理是Java基本的設計模式,提供向物件插入額外的或不同的操作。Java的動態代理能動態的建立代理物件,以及動態的呼叫代理方法。用於實現AOP。一、Java反射機制1、作用 (1)在執行時判斷任意一個物件所屬的類; (

利用JAVA反射機制訪問ITelephony隱藏介面(android程式中結束通話電話)

這兩天研究如何利用程式結束通話電話。發現在Android1.0的時候Phone中提供了提供了endCall方法,而1.5以後這個方法被設定為私有了。如此有了如下研究: /** * 利用JAVA反射機制呼叫ITelephony的endCall()結束通話。 */

利用java反射機制 讀取配置檔案 實現動態類載入以及動態型別轉換

作者:54dabang 在spring的學習過程之中,我們可以看出通過配置檔案來動態管理bean物件的好處(鬆耦合 可以讓零散部分組成一個整體,而這些整體並不在意之間彼此的細節,從而達到了真正的物理上的疏散耦合,而非邏輯,有了IOC之後,我們可以讓SPRING充當各框架

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

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

根據java反射機制 通過傳入的引數 對傳入的List 進行排序

import java.lang.reflect.Field; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Sor

java反射機制不支援可變引數

class X { public void test(int... args) { } } main() { Method m = X.class.getMethod("test", int[].class); m.invoke(new X(), 1, 2, 3); //這

Java反射機制(得到所有的構造方法)

Person package org.lxh.demo.classdemo04; interface Info {  public static final String AUTHOR = "MLDN";  public String getInfo();  public

通過java反射機制操作物件的屬性方法

獲得物件的類屬性(Class 類) Class 類名.classClass 物件名.getClass()Class Class.forName(類的具體名稱);通過類獲得屬性Field(Field類)

[java]反射機制給屬性使用set方法構造物件

測試程式碼 package main; import java.lang.reflect.Field; import java.lang.reflect.Method; public clas