當前位置:首頁 » 編程語言 » java中的invoke方法

java中的invoke方法

發布時間: 2022-06-18 06:23:13

A. java invoke

這個看上去像spring的aop

method對象調用invoke方法,該方法傳入兩個參數,一個是bean對象,一個是Object數組,傳入的數組是空值,沒有任何數據。

invoke方法運行完之後,返回一個結果,將結果賦值給Object類型的result。

如果這是aop的話,就是面向切面的。invoke方法是在原方法中插入一段自己的邏輯,並返回。用來做日誌之類的處理

B. java中invoke()的作用是什麼

用來執行一個方法,是反射中知識 。

就是調用類中的方法,最簡單的用法是可以把方法參數化invoke(class, method)。

比如你Test類里有一系列名字相似的方法setValue1、setValue2等等。

可以把方法名存進數組v[],然後循環里invoke(test,v[i]),就順序調用了全部setValue。

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。

Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程

C. Java反射invoke怎麼用

Java反射中invoke的用法,我給你個例子,你看看吧(每一句都有注釋)

import java.lang.reflect.Method;

import java.lang.reflect.Constructor;

public class S{

public void test(){

System.out.println("test");

}

public static void main(String[] args) throws Exception {

//獲取S類

Class clzz = Class.forName("S");

//獲取S類默認無參構造方法

Constructor con = clzz.getDeclaredConstructor();

//創建一個S類實例對象

S s =(S)con.newInstance();

//獲取S類的公有成員方法test

Method m=clzz.getDeclaredMethod("test");

//調用S類對象s中的公有成員方法test

m.invoke(s);

}

}

D. java反射中method類中的invoke方法是做什麼的,他有什麼作用

首先Method類代表一個方法,所以invoke(調用)就是調用Method類代表的方法。它可以讓你實現動態調用,例如你可以動態的傳人參數。下面是一個簡單的例子。

publicclassMethodTest
{
publicstaticvoidmain(String[]args)
{
String[]names={"tom","tim","allen","alice"};
Class<?>clazz=Test.class;
try
{
Methodmethod=clazz.getMethod("sayHi",String.class);
for(Stringname:names)
method.invoke(clazz.newInstance(),name);
}catch(NoSuchMethodExceptione)
{
e.printStackTrace();
}catch(IllegalAccessExceptione)
{
e.printStackTrace();
}catch(IllegalArgumentExceptione)
{
e.printStackTrace();
}catch(InvocationTargetExceptione)
{
e.printStackTrace();
}catch(InstantiationExceptione)
{
e.printStackTrace();
}
}
}
classTest
{
publicvoidsayHi(Stringname)
{
System.out.println("Hi"+name);
}
}

E. java中 invoke()如何傳實體進去

你問的是Method類的invoke方法吧
這個方法的定義是:invoke(Object obj,Object...args)
第一個參數為類的實例,第二個參數為相應函數中的參數
你的問題里說如何傳實體進去,很簡單,你定義的方法只要寫了接收參數(數量無所謂),那麼直接(弄成數組)傳進去就是了。
以下是一個例子:
public class Test
{
public void print(String string)
{
System.out.println("print(String string)");
System.out.println(string);
}

public void print(String ... strings)
{
System.out.println("print(String ... string)");

for(String string: strings)
System.out.println(string);
}

public static void main(String[] args) throws Exception
{
Test test = new Test();

// 調用 print(String string)
Method method1 = test.getClass().getMethod("print", String.class);
method1.invoke(test, "a");

// 調用 print(String ... strings)
Method method2 = test.getClass().getMethod("print", Array.newInstance(String.class, 0).getClass());
method2.invoke(test, new String[][]{new String[]{"a", "b"}});
}

}

F. JAVAstruts框架中的攔截器的invocation.invoke方法有什麼用,其返回值亦是什

invocation.invoke()
就是通知
struts2
接著干下面的事情
比如
調用下一個
攔截器

執行下一個Action
攔截器的值
返回值
要麼代表繼續攔截
要麼是success等一些類Action類提供的靜態量
它會根據這個值去到相應的頁面

G. java invoke 反射的使用方法

你這個類是一個嚴格的JavaBean格式。。所以先可以獲得屬性。。然後獲得讀寫方法。。然後寫值。。讀值。。hibernate其實也就是採用的這種差不多的方式。。

import java.beans.PropertyDescriptor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class ReflectTest {

/**
* @param args
*/
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("TaskProvidePropsList");//這里的類名是全名。。有包的話要加上包名
Object obj = clazz.newInstance();
Field[] fields = clazz.getDeclaredFields();
//寫數據
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method wM = pd.getWriteMethod();//獲得寫方法
wM.invoke(obj, 2);//因為知道是int類型的屬性,所以傳個int過去就是了。。實際情況中需要判斷下他的參數類型
}
//讀數據
for(Field f : fields) {
PropertyDescriptor pd = new PropertyDescriptor(f.getName(), clazz);
Method rM = pd.getReadMethod();//獲得讀方法
Integer num = (Integer) rM.invoke(obj);//因為知道是int類型的屬性,所以轉換成integer就是了。。也可以不轉換直接列印
System.out.println(num);
}
}

}

熱點內容
安卓如何設置桌面返回鍵 發布:2025-02-06 13:58:15 瀏覽:48
bi可視化php 發布:2025-02-06 13:50:15 瀏覽:931
shell寫腳本文件 發布:2025-02-06 13:47:32 瀏覽:231
健身器材腳本 發布:2025-02-06 13:46:36 瀏覽:856
怎麼從手機里卸載存儲卡 發布:2025-02-06 13:35:04 瀏覽:644
誅仙青雲志2ftp 發布:2025-02-06 13:34:48 瀏覽:34
mill91編程 發布:2025-02-06 13:10:27 瀏覽:294
華為平板怎麼儲存伺服器文件 發布:2025-02-06 12:49:21 瀏覽:482
php查詢結果數組 發布:2025-02-06 12:31:05 瀏覽:717
怎樣把照片壓縮打包 發布:2025-02-06 12:15:19 瀏覽:498