取得方法
反射最大的用处(几乎所有的开发中),就是针对于方法的操作。
在反射机制中,普通方法可以在保存用户状态的情况下进行各种操作。
Class类中取得方法的操作
1. 取得全部方法(返回Method[] n)
public Method[] getMethods()
2. 取得指定方法
两者都是返回 java.lang.reflect.Method类型
在Method类中定义了如下操作方法:
·取得方法名字
String getName()
·取得方法修饰符(int)
·取得方法的参数类型
public Class<?>[] getParameterTypes();
·调用指定的方法
public Object invoke(Object obj, Object... args);
//obj:任何方法调用时都必须有实例化对象,而后再设置参数args
·获取返回值类型
public Class<?> getReturnType(); 
 
整个Method类中最重要的方法是 invoke(),可以反射调用方法 
 
反射调用
一个类必须在有一个实例化对象 的情况下才能调用类中的普通方法
关键字new调用普通方法的缺点
·代码结构严谨
·关键字new
·明确指定了一个类的对象
 
反射调用代码:
Class<?> cls = Class.forName("Dept");
Object obj = cls.newInstance();
Method metA = cls.getMethod("setDname",String.class)
Method metB = cls.getMethod("getDname");
metA.invoke(obj, "测试部");
System.out.println(metB.invoke(obj));
 
编写StringUtils
public class StringUtils{
    public static String initcap(String str){
        if(str==null||"".equals(str)){
            return str;
        }
        if(str.length==1){ //只有一位数据,全部变大写
            return str.toUpperCase();
        }else{
            return str.substring(0,1).toUpperCase() + str.substring(1);
        }
    }
}