喜欢读框架源码的童鞋,对这两个单词相信不会陌生。但这框架里面一会Parameter,一会Argument,两单词的字面意思又都是“参数”,可能有些童鞋就被搞昏头了
其实这两个“参数”是有区别的。“形参”和“实参”相信每一个程序猿都听过,Parameter(Param)对应的正是“形参”,而Argument(Arg)对应的是“实参”
我们来看看实际例子,就很容易记住它们了:
Method m = String.class.getMethod("indexOf", String.class, int.class);
int p = (Integer)m.invoke("abcdeabcde", "ab", 2);
System.out.println(p);
这是一段超级简单的反射代码,通过反射调用String的indexOf方法(该方法有4个重载,所以要指定方法签名),获取子串的位置。然而,醉翁之意不在酒,我们要关注的并不是这段代码本身,而是要看getMethod和invoke这两个方法,官方的Javadoc有什么区别
先看getMethod:
再看invoke:
这下