JAVA中通过反射机制调用方法

JAVA中通过反射机制调用方法

  • 反射机制,让代码具有通用性,可变化的内容都是写到配置文件中,
    将来修改配置文件之后,创建的对象就不一样,调用的方法也不同了,
    但是java源代码不需要做任何改动。

  • List item
    调用方法四要素
    方法:methods
    对象:o
    实参:“admin”,“123”
    返回值:retValue

  • 根据方法名和形参列表获取method
    Method methods = c.getDeclaredMethod(“login”, String.class, String.class);

  • 最重要的的方法:invoke(); invoke:调用
    invoke()用于调用方法

public class MethodTest04 {
    public static void main(String[] args) throws Exception{
        //不使用反射机制调用对象
        UserService userService = new UserService();
        userService.login("zhangsan","123");

        Class c = Class.forName("reflection.method.UserService");
        Object o = c.newInstance();
        //根据方法名和形参列表获取method
        Method methods = c.getDeclaredMethod("login", String.class, String.class);

        //反射机制调用方法中
        //  最重要的的方法:invoke();   invoke:调用
        //调用方法四要素
        //方法:methods
        // 对象:o
        // 实参:"admin","123"
        // 返回值:retValue
        Object retValue = methods.invoke(o,"zhangsan","123");
        System.out.println(retValue);
    }
}
  • 创建一个测试类:
public class UserService {
    public boolean login(String admin, String password){
        if (admin.equals("zhangsan")){
            System.out.println(password.equals("123"));
            return true;
        }
        return false;
    }

    public String test(){
        return "?";
    }

    public void logout(){
        System.out.println("你已成功退出");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值