动态代理中需要注意的返回值的问题

在使用动态代理时遇到空指针异常的问题,通过调试发现是由于没有处理登陆方法的返回值,InvocationHandler接口中抽象方法默认返回null导致。解决方案包括对逻辑对象进行非空判断和将method.invoke方法的返回值直接作为结果,防止空指针异常的发生。
摘要由CSDN通过智能技术生成

在我之前的一篇博文里,我记录的了我个人学习动态代理的笔记,这次做了个j2se的小项目,就用到了动态代理,由于不熟悉,
踩坑了,刚刚解决完,记录一下。
首先是各个板块的代码截图

/**
 * Created on 10:48  24/08/2019
 * Description:
 *   注册接口,判断是否已经注册以及注册功能的实现
 * @author Weleness
 *
 */
public interface UserDao {
   
    boolean isLogin(String username,String password);

    void regist(User user);
}
/**
 * Created on 10:57  24/08/2019
 * Description:
 * UserDao接口实现类  用来真正实现注册功能
 *  要通过反射读取的临时文件一定要放在src目录下
 * @author Weleness
 */

public class UserImpl implements UserDao {
   
    private static InputStream in;
    private static Properties pro =new Properties();

    static {
   
        try {
   
            in = UserImpl.class.getClassLoader().getResourceAsStream("user.properties");
            pro.load(in);
        } catch (Exception e) {
   
            e.printStackTrace();
        }
    }

    @Override
    public boolean isLogin(String username, String password) {
   
        if (password.equals(pro.getProperty(username))) {
   
            return true;
        }
        return false;
    }

    @Override
    public void regist(User user) {
   
        if (pro.getProperty(user.getUsername()) != null) {
   
            System.out.println("对不起。用户已存在,不能重复注册");
        } else {
   
            try {
   
                pro.setProperty(user.getUsername(), user.getPassword());
                PrintWriter pw = new PrintWriter("G:\\IDea\\Test\\src\\user.properties");
                pro.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值