当前位置:首页 » 编程语言 » 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 16:53:48 浏览:379
python处理excel文件 发布:2025-02-06 16:36:09 浏览:439
算法相对定位 发布:2025-02-06 16:32:42 浏览:725
java程序的编译和执行 发布:2025-02-06 16:21:45 浏览:416
什么是淘宝帐号和密码 发布:2025-02-06 16:21:36 浏览:495
解压前面签 发布:2025-02-06 16:02:00 浏览:324
华硕访问点 发布:2025-02-06 15:56:57 浏览:331
excel拼接sql 发布:2025-02-06 15:50:10 浏览:501
加密手机直播 发布:2025-02-06 15:49:31 浏览:535
自带ftp服务器好用吗 发布:2025-02-06 15:26:11 浏览:110