java object... args_Object invoke(Object obj, Object... args)

Object invoke(Object obj, Object... args)

描述 (Description)

java.lang.reflect.Method.invoke(Object obj, Object... args)方法在具有指定参数的指定对象上调用此Method对象表示的基础方法。 各个参数自动展开以匹配原始形式参数,并且原始参数和参考参数都根据需要进行方法调用转换。

声明 (Declaration)

以下是java.lang.reflect.Method.invoke(Object obj, Object... args)方法的声明。public Object invoke(Object obj, Object... args)

throws IllegalAccessException, IllegalArgumentException,

InvocationTargetException

参数 (Parameters)obj - 从中调用基础方法的对象。

args - 用于方法调用的参数。

返回值 (Returns)

使用参数args在obj上调度此对象表示的方法的结果。

异常 (Exceptions)IllegalAccessException - 如果此Method对象强制执行Java语言访问控制且基础方法不可访问。

IllegalArgumentException - 如果方法是实例方法,并且指定的对象参数不是声明基础方法(或其子类或实现者)的类或接口的实例; 如果实际和形式参数的数量不同; 如果原始参数的展开转换失败; 或者,如果在可能的解包之后,参数值不能通过方法调用转换转换为相应的形式参数类型。

InvocationTargetException - 如果基础方法抛出异常。

NullPointerException - 如果指定的对象为null且方法是实例方法。

ExceptionInInitializerError - 如果此方法引发的初始化失败。

例子 (Example)

以下示例显示了java.lang.reflect.Method.invoke(Object obj,Object ... args)方法的用法。package com.iowiki;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

public class MethodDemo {

public static void main(String[] args)

throws IllegalAccessException, IllegalArgumentException, InvocationTargetException {

Method[] methods = SampleClass.class.getMethods();

SampleClass sampleObject = new SampleClass();

methods[1].invoke(sampleObject, "data");

System.out.println(methods[0].invoke(sampleObject));

}

}

class SampleClass {

private String sampleField;

public String getSampleField() {

return sampleField;

}

public void setSampleField(String sampleField) {

this.sampleField = sampleField;

}

}

让我们编译并运行上面的程序,这将产生以下结果 -data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值