Lombok:@Delegate优化代码利器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、@Delegate介绍

二、示例

三、使用场景

四、使用注意事项

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、@Delegate介绍

@Delegate可以让你的类使用其他类的方法,而不需要自己写代码

二、示例

// 一个类,有一个方法
public class A {
    public void sayHello() {
        System.out.println("Hello");
    }
}

// 一个类,委托了A类的方法
public class B {
    @Delegate // 委托A类的方法
    private A a = new A();

    public static void main(String[] args) {
        this.sayHello(); // 调用A类的方法
    }
}

有一个类叫做A,它有一个方法叫做sayHello(),你想让另一个类B也能用这个方法,那就可以在B类中加上一个A类型的字段,并在这个字段上加上@Delegate注解,这样,B类就可以直接调用sayHello()方法,就像它是自己的方法一样 

以下是另一种写法

// 一个类,有一个方法
public class A {
    public void sayHello() {
        System.out.println("Hello");
    }
}

// 一个类,委托了A类的方法
public class B {
    @Delegate(types=A.class)
    private A a;

    public static void main(String[] args) {
        this.sayHello(); // 调用A类的方法
    }
}

三、使用场景

1、我们在实际编码中,会产生大量重复性的代码或者方法,如果要将其提取出来,就得新建好多额外的类出来,而且还不好归类,有时候也会跨多层目录。那么这个时候,就可以通过这种方式,在不同的地方使用同一个方法。

2、当我们在编写业务代码的时候,通常会有service层和impl层,如果要抽出来方法的话,就必须得在service中新增接口方法,如果是不对外的情况下,这么添加,就会暴漏出去。如果采用@Delegate注解的方式,就不用有这个担心了。

四、使用注意事项

通过这种方式,去调用的方法,必须得是public修饰的。


总结

每天进步一点点!

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值