java通过反射机制调用方法

重点:必须记住这个方法: 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);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值