反射机制反射类中方法Method
反射机制反射类中方法Method
测试代码:
package reflect;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class Test11 {
public static void main(String[] args) throws Exception {
// 反射获取类
Class uClass = Class.forName("reflect.UserService");
// 获取类中所有的方法,显然不包含构造方法
Method[] methods = uClass.getDeclaredMethods();
System.out.println(methods.length); // 3
// 遍历所有的方法
for (Method m : methods) {
// 获取修饰符列表代号和,转换成字符串
int i = m.getModifiers();
String modStr = Modifier.toString(i);
// 获取该方法的返回值类型
Class returnType = m.getReturnType();
String returnStr = returnType.getSimpleName();
// 获取方法的变量名
String mName = m.getName();
// 输出方法信息:修饰符列表,返回值类型,方法名
System.out.print(modStr + " " + returnStr + " " + mName + "(");
// 获取该方法的形式参数列表的类型
Class[] parClasses = m.getParameterTypes();
StringBuilder s = new StringBuilder();
if (parClasses.length != 0) {
for (int j = 0; j < parClasses.length ; j++) {
s.append(parClasses[j].getSimpleName() + ", ");
}
s.deleteCharAt(s.length()-1);
s.deleteCharAt(s.length()-1);
}
System.out.println(s + ")\n");
}
}
}
class UserService {
public boolean login(String name, String password) {
if ("admin".equals(name) && "abc123".equals(password)) {
return true;
}
return false;
}
public void logout() {
System.out.println("已退出!!!");
}
private void doSome() {
System.out.println("doSome()方法执行!");
}
}
还没有评论,来说两句吧...