重点:必须记住这个方法: userMethod.invoke(obj,“admin”,“123”);
用户业务类
package cn.itcast.day04.demo01.Kt1.test2;
//用户业务类
public class Srudentt {
/**
* 登录方法
* @param name 用户名
* @param password 密码
* @return true便是登陆成功,false表示登录失败!
*/
public boolean login(String name,String password){
if ("admin".equals(name) && "123".equals(password)){
return true;
}
return false;
}
//可能还有一个同名的login方法
//java中因为有重载机制,所以要靠方法名和参数列表结合来区别两个方法。
public void login(int i){
}
/**
* 退出系统的方法
*/
public void logout(){
System.out.println("系统已经安全退出!");
}
}
测试类
package cn.itcast.day04.demo01.Kt1.test2;
import java.lang.reflect.Method;
/*
重点!!!!通过反射机制调用方法。
*/
public class Reflect {
public static void main(String[] args) throws Exception{
//不使用反射机制,怎么调用方法。
//创建对象
Srudentt srudentt = new Srudentt();
//调用方法
boolean loginSuccess = srudentt.login("admin","123");
System.out.println(loginSuccess?"登录成功": "登陆失败");
//使用反射机制来调用一个对象的方法该怎么做?
Class user = Class.forName("cn.itcast.day04.demo01.Kt1.test2.Srudentt");
//创建对象
Object obj = user.newInstance();
//获取method
Method userMethod = user.getDeclaredMethod("login", String.class, String.class);
//调用方法。
Object retValue = userMethod.invoke(obj,"admin","123");
System.out.println(retValue);
}
}