本人喜欢把复杂的事情简单化,简单的事情复杂化---以前读书的时候,语文老师经常再三强调,写作文的时候不要把题目写”太大”了;只要写一件小事,写的越详细越动人就达到了目的!
---zhibao.liu
本来想先介绍反射构造函数,代码写了一部分,发现先介绍反射构造函数不是太”灵活”,所以,就先介绍方法,感觉先介绍了方法,在讲构造函数时,往构造函数中传递参数,然后通过方法在体现出来,效果会更加!
大致介绍
一下Method.java
中需要用到的几个常见的方法:
|
|
http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Method.html |
获取Method对象的几个常见方法,大致如下:
Field[] getDeclaredFields |
|
Method getDeclaredMethod |
|
http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html |
上面方法介绍的很少,但是其他方法可以举一反三,主要是上面的方法将来用的时候,见得面也是最多的.当然这也是本人个人一些经验,一些书大谈特谈,讲了很多API之类的,也分析了很多,往往让初学者反而不知道重点,感觉各个都是重点,结果书看起来很费劲,导致很多书越看到后面越没意思了,如果一个人都没办法上手,那教的再多也没什么用,何必搞得那么复杂呢.
废话不过说,同样新建一个java
工程:
<1> : 新建以后,工程树如下:
<2> : FlexClass.java代码中增加两个测试用的方法,如下:
/**
*
*/
package com.oneplus.flex;
/**
* @author zhibao.liu
* @date 2015-11-18
* @company : oneplus.Inc
*/
public class FlexClass {
public void Show(String information){
System.out.println("show information as : "+information);
}
private int Add(int a,int b){
return a+b+1;
}
}
<3> : 下面看一看主要程序代码中,首先列出反射出来的类中有多少方法:
private static void OneplusFlexMethod(String packagename){
try {
Class clazz=Class.forName(packagename);
try {
Object obj = clazz.newInstance();
//获取类所有的方法
Method[] methods=clazz.getDeclaredMethods();
for(int i=0;i<methods.length;i++){
System.out.println("method name : "+methods[i].getName());
}
} catch (InstantiationException e) {
// TODO Auto-generated catc