1. 程式人生 > >Java(通過反射獲取方法並使用)

Java(通過反射獲取方法並使用)

package com.sanmao10;

import java.lang.reflect.Constructor;
import java.lang.reflect.Method;

public class test_method {
    /**
     * 反射(通過反射獲取方法並使用)
     * Method
     * Class.getMethod(String, Class...) 和 Class.getDeclaredMethod(String, Class...)
     * 方法可以獲取類中的指定方法,呼叫invoke(Object, Object...)可以呼叫該方法,Class.getMethod("eat")
     * invoke(obj) Class.getMethod("eat",int.class) invoke(obj,10)*/
public static void main(String[] args) throws Exception{ Class clazz=Class.forName("com.sanmao10.Person"); Constructor constructor=clazz.getConstructor(String.class,int.class); Person p=(Person)constructor.newInstance("sanmao",25); Method m=clazz.getMethod("papapa"
); //獲取papapa無參方法 m.invoke(p); Method m1=clazz.getMethod("papapa",String.class,int.class); //獲取有參的papapa方法 m1.invoke(p,"范冰冰",20); } }

相關推薦

Java(通過反射獲取方法使用)

package com.sanmao10; import java.lang.reflect.Constructor; import java.lang.reflect.Method; public class test_method { /**

java 通過反射獲取方法引數列表名稱

說明             一般情況下是使用不到用反射來獲取引數列表名稱的,只要知道引數列表的型別就可以執行某一個引數了,因為引數名稱是給開發人員用的,執行時引數名稱不起作用。 所以 JDK 本身是沒有獲取引數列表名稱的。          如果要寫框架一類的東西,比

java通過反射獲取方法的引數名,Idea/Eclipse/Maven的配置

1,在8以前的jdk版本中,我們利用反射只能獲取到引數型別,然後引數名字都是利用arg0,arg1,arg2......要想獲得引數名,得加上註解,如下:public User getUser(@Param("groupid") String groupid, @Param(

Java通過反射獲取帶引數構造方法使用

package com.sanmao10; import java.lang.reflect.Constructor; public class test2 { /** * ###27.05_反射(通過反射獲取帶參構造方法並使用) *

java通過反射獲取私有的構造方法,及反射擦除泛型數據類型約束

code for循環 getmethod 不能 添加 class win flag ring /* * 反射獲取私有的構造方法運行 * 不推薦,破壞了程序的安全性,封裝性 * 暴力私有 */ public class ReflectDemo4 {

Java(通過反射獲取成員變數使用)

package com.sanmao10; import java.lang.reflect.Constructor; import java.lang.reflect.Field; public class test_Field { /**

java 通過反射獲取註解

使用反射獲取某個類的註釋、方法上的註釋、屬性上的註釋。 import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; import javax.x

java 通過反射獲取泛型的型別

分享一下我老師大神的人工智慧教程吧。零基礎,通俗易懂!風趣幽默!http://www.captainbed.net/ 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

java reflect反射獲取方法變數引數

類的成員包含變數(Field),方法(Method),構造器(Constructor) 類定義 package Reflect; public class MyTest { public int a; public static int b; public static f

通過反射獲取方法的引數名稱(JDK8以上支援)

  方法的引數名,在很多時候我們是需要反射得到的。但是在java8之前,程式碼編譯為class檔案後,方法引數的型別是固定的,但引數名稱卻丟失了,這和動態語言嚴重依賴引數名稱形成了鮮明對比。(java是靜態語言,所以入參名稱叫什麼其實無所謂的)。   雖然名稱無所謂,但很多時候,我們需要此名稱來做更好的安排

java通過反射獲取List中的泛型

Field[] fields = bean.getClass().getDeclaredFields(); for(Field f : fields){ f.setAccessible(true); if(f.getType() == java.util.List

java通過反射獲取類名、屬性名稱以及@Table註解上的表名稱

import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.Table; import java.lang.reflect.Field; import java.

通過反射獲取方法返回的型別

package org.entity; import java.lang.reflect.Method; import java.lang.reflect.Type; /** * 本案例演示如

java通過反射獲取物件的變數和變數值

在java中如果類的成員變數設定為私有的,一般情況下是不允許直接訪問這個變數的,但是有了反射之後,就可以直接獲取該變數的名稱和變數值 1. 訪問成員變數 (1)先定義一個使用者實體類 p

00113_通過反射獲取成員方法使用

tor 執行指定 eth 演示 反射 println span 通過 font 1、在反射機制中,把類中的成員方法使用類Method表示; 2、通過Class類中提供的方法獲取成員方法:   (1)返回獲取一個方法 public Method getMethod(Stri

Java 自定義註解&通過反射獲取類、方法、屬性上的註解

反射 JAVA中的反射是執行中的程式檢查自己和軟體執行環境的能力,它可以根據它發現的進行改變。通俗的講就是反射可以在執行時根據指定的類名獲得類的資訊。   註解的定義 註解通過 @interface 關鍵字進行定義。 /** * 自定義註解 *

java利用反射獲取某個包下的所有獲取物件屬性、方法例項化

首先貼上用到的jar包,當然也可以通過遞迴file.list獲取類的路徑名稱。 maven匯入jar包: <dependency> <groupId>

java中自定義註解通過反射獲取註解屬性值

直接上程式碼,註釋中有說明: 1、定義自定義註解類(類註解和欄位註解): package com.uno.ray;   import java.lang.annotation.Documented;   import java.lang

java再複習——通過反射獲取方法的引數和返回值的泛型型別

我們都知道了可以定義帶有泛型引數的方法,以及泛型返回值的方法了,那麼泛型在執行的時候已經被擦除了,我們該如何知道這個泛型到底是什麼呢?有很多情況需要知道實際泛型是什麼,Android資料庫框架以及Http框架在解析成json成實體類的時候,必然要知道是哪個類。 獲取引數的泛

通過反射獲取class文件中的構造方法,運行構造方法

對象 rgs span for instance .... urn his col /* * 通過反射獲取class文件中的構造方法,運行構造方法 * 運行構造方法,創建對象 * 1、獲取class文件對象 * 2、從class文件對象中,獲取需要