java getMethod方法和invoke方法(看代码)

packagecom.mzsds.wlk;importjava.lang.reflect.InvocationTargetException;importjava.uti... package com.mzsds.wlk;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;

public class Main {
public static void main(String... args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
// List<Account> acc = new ArrayList<Account>();
// List<Meet> meet = new ArrayList<Meet>();
// Email email = new Email();

Account a = new Account();
Meet m = new Meet();

a.setName("acc");
m.setName("meet");

// acc.add(a);
// meet.add(m);

System.out.println(a.getName());

//大哥哥大姐姐对应getMethod方法和invoke方法,学的头疼。求一个通俗的解释, 22等价于25吗?
System.out.println(a.getClass().getMethod("getName").invoke(a.getClass().newInstance()));

// boolean b = email.send(acc, meet);

}
}
展开
 我来答
hanwt139
2017-08-30 · TA获得超过843个赞
知道小有建树答主
回答量:1144
采纳率:100%
帮助的人:701万
展开全部
不纠结过多的细节的话,等价。
“巧妇难为无米之炊”在这句话说明了java里大多数方法调用的必要内容:
巧妇(谁)、为炊(干很么)、米(干活的原材料,非必需)
1、a.getName()
知道“巧妇(a)”,知道“为炊(getName)”
总结:【“巧妇”做“为炊”这件事】

2、a.getClass().getMethod("getName").invoke(a.getClass().newInstance())
1)a.getClass().getMethod("getName")
“为炊(getName)”的另一个说法
2)a.getClass().newInstance()
有“为炊”没用,还得找个“巧妇”,这句就是干这个的
3)invoke
牵个线
总结:【“为炊”这件事“invoke”帮你找个“巧妇”来做】

不要纠结,既然你还困惑这两个的差异,那就说明你还没到需要了解的时候。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式