導航:首頁 > 編程語言 > java反射獲取方法名

java反射獲取方法名

發布時間:2023-06-18 21:59:46

① 說說對java反射的理解,使用反射如何獲取一個類的所有方法,使用反射需要注意哪些問題

反射說白了就是可以獲得一個類的所有信息,主要包括方法和屬性兩部分。
1.獲得方法包括獲得方法的名稱,方法的返回類型,方法的訪問修飾符,以及通過反射執行這個方法。
2.獲得屬性包括屬性的名稱,類型,訪問修飾符,以及這個屬性的值。
這些獲得都有相應的API提供操作。

舉個例子:
先定義一個類,有age這個屬性,以及age的get和set方法:

public class TestRflectionFather {
public int age =32;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

然後操作獲得所有方法:

import java.lang.reflect.Method;
public class Testmain {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("TestRflectionFather");
Method[] methods =clazz.getDeclaredMethods();
for(Method me:methods)
{
System.out.println(me.getName());
}
}

}

//最後輸出
getAge
setAge

② java中反射的三種方法是

第一種:通過forName()方法;

第二種:類.class;

第三種:對象.getClass()。

舉例如下:

package
test;

public class Demo{

public static void
main(){

Class<?> c1 = null;

Class<?> c2 =
null;

Class<?> c3 =
null;

//三種反射用實例化方式

try{

//最常用的一種形式

c1 =
Class.forName("test.X");

}catch(ClassNotFoundException
e){

e.printStackTrace();

}

//通過Object類中的方法實例化

c2
= new X().getClass();

//通過類.class實例化

c3 =
X.class;

System.out.println("類名:" + c1.getName());
//得到類名

System.out.println("類名:" + c2.getName());
//得到類名

System.out.println("類名:" + c3.getName());
//得到類名

}

}

③ Java如何獲取方法參數中的名稱

一、從註解中獲取
使用註解方式,我們需要自定義一個註解,在註解中指定參數名,然後通過反射機制,獲取方法參數上的註解,從而獲取到相應的註解信息。這里自定義的註解是Param,通過value參數指定參數名,定義了一個工具類ParameterNameUtils來獲取指定方法的參數名列表,這里獲取測試類ParameterNameTest中定義的方法method1的參數名列表表,下面是具體的代碼。

④ Java反射機制獲取set()方法 並且為set()方法傳值

Class.getDeclaredMethod()
是獲取這個類中所有的方法,返回的是Method[]
如果有參數,第1個是方法名稱,第2個是該方法的所有參數數組,這樣返回的是Method這個對象
Method.invoke()
傳入調用方法的類,另一個是調用這個方法所需要的參數,如果該方法沒有參數,可以不填寫,在JDK1,4之前,第2個參數是傳入一個數組的,但是在jdk1.5之後,可以不傳數組,多個參數用逗號隔開

不知道你聽明白沒

⑤ 在JAVA中,怎麼利用反射獲取一個方法

java的反射用法:(異常請自行處理)

①找到類:Class cl = Class.forName("java.util.Date");

②創建對象(要求這個類中含有空參數的構造方法):Object obj = cl.newInstence();

③根據名稱和參數找方法:Method method1 = cl.getMethod("getTime");//如果沒有參數不用寫第二個參數如果有參數的如:Method method2 = cl.getMethod("setTime",long.class);

④在某個對象上面執行方法,Object result = method1.invoke(obj);//如果有參數的Object result = method2.invoke(obj,21317362721);

執行的方如果有返回值,將返回值返回,否則返回null

⑥ 如何利用java反射順序的從一個java類中得到其中定義的成員變數名或者方法

for (int i = 0; i < fields.length; i++) {
Field field = fields[i];

String fieldName = field.getName();
System.out.println("name====="+fieldName);
String firstLetter = fieldName.substring(0, 1).toUpperCase();
// 獲得和屬性對應的getXXX()方法的名字
String getMethodName = "get" + firstLetter + fieldName.substring(1);

// 獲得和屬性對應的getXXX()方法
Method getMethod = classType.getMethod(getMethodName, new Class[]{});

// 調用原對象的getXXX()方法
Object value = getMethod.invoke(object, new Object[]{});
System.out.println("value===="+value);
}

⑦ java反射獲取方法不定參數的名稱和類型

(Object...objects){
for(Objectobj:objects){
Classclz=obj.getClass();
System.out.println(clz);
}
returnfalse;
}

閱讀全文

與java反射獲取方法名相關的資料

熱點內容
java帶參數的線程 瀏覽:913
為什麼安卓車載中控屏看起來很差 瀏覽:466
吃雞怎麼解壓最快 瀏覽:968
linux網路編程基礎 瀏覽:219
產研是程序員嗎 瀏覽:594
程序員的法律 瀏覽:969
編程第四關用冰雪火焰閃現通關 瀏覽:756
批處理當前文件夾參數 瀏覽:185
鴻蒙安卓如何下載 瀏覽:904
開3389命令 瀏覽:542
程序員大都單純嗎 瀏覽:915
APP如何實現下載功能 瀏覽:216
通達信源碼怎樣放到桌面 瀏覽:645
程序員的腦袋會禿嗎 瀏覽:455
為什麼eve登錄啟動不進去伺服器 瀏覽:272
微信招生app哪個好用 瀏覽:233
寶可夢劍盾啟動文件在哪個文件夾 瀏覽:765
壓縮機比容 瀏覽:117
python自動化測試面試 瀏覽:949
買便宜點的鞋子去哪個app買 瀏覽:890