【每天学个新注解】Day 13 Lombok注解简解(十二)—@Delegate

@Delegate

将其他类的方法注入当前类

1、如何使用

  • 加在需要委托其它类实现的类上或者方法上。
  • 可以通过使用@Delegate(excludes=SomeType.class)参数来排除已排除的类型及其父类型中的所有公共方法。
  • 要非常精确地控制委托和不委托的内容,请使用方法签名编写私有内部接口,然后将这些私有内部接口指定为@Delegate(types=PrivateInnerInterfaceWithIncludesList.class, excludes=SameForExcludes.class)。

2、代码示例

例:

java 复制代码
public class A {
    public void sayHelloA() {
        System.out.println("Hello");
    }
}
java 复制代码
public class B {
    @Delegate(types = A.class)
    private A a;

    public void sayHelloB() {
        this.sayHelloA();
    }
}

编译后:可以很清晰的看出,编译后还是重写了一个同名的方法供委托类调用。

java 复制代码
public class B {
    private A a;

    public B() {
    }

    public void sayHelloB() {
        this.sayHelloA();
    }

    @Generated
    public void sayHelloA() {
        this.a.sayHelloA();
    }
}
相关推荐
苦学编程的谢23 分钟前
Java网络编程API 1
java·开发语言·网络
寒山李白29 分钟前
Java 依赖注入、控制反转与面向切面:面试深度解析
java·开发语言·面试·依赖注入·控制反转·面向切面
casual_clover31 分钟前
Android 之 kotlin语言学习笔记三(Kotlin-Java 互操作)
android·java·kotlin
AA-代码批发V哥34 分钟前
Java正则表达式完全指南
java·正则表达式
还不起来学习?38 分钟前
常见算法题目5 -常见的排序算法
java·算法·排序算法
Java菜鸟、1 小时前
设计模式(代理设计模式)
java·开发语言·设计模式
Thanwind1 小时前
JVM中的各类引用
java·jvm·jmm
RainbowJie11 小时前
从零到一:Maven 快速入门教程
java·maven
shangjg31 小时前
Kafka数据怎么保障不丢失
java·分布式·后端·kafka
RainbowJie11 小时前
Maven的生命周期
java·maven