文章浏览阅读 801 次,点赞 6 次,收藏 6 次。Delegate 可以让你的类使用其他类的方法,而不需要自己写代码每天进步一点点!_lombok delegate
2024-12-10 14:23:03
一、@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 修饰的。
总结
每天进步一点点!