【每天学个新注解】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();
    }
}
相关推荐
IT学长编程17 分钟前
计算机毕业设计 基于SpringBoot和Vue的课程教学平台的设计与实现 Java实战项目 附源码+文档+视频讲解
java·spring boot·毕业设计·课程设计·毕业论文·计算机毕业设计选题·课程教学平台
苹果醋341 分钟前
idea环境下vue2升级vue3
java·运维·spring boot·mysql·nginx
weixin_5318042444 分钟前
泛型中的通配符<?>、<? extends T>、<? super T>的使用场景。ArrayList与LinkedList的区别及适用场景。
java·前端·javascript
二手的程序员1 小时前
网络抓包04 - SSLSocket
java·开发语言·前端·算法·网络安全
FIN技术铺1 小时前
问:SQL中join语法的差异?
java·数据库·sql
打码人的日常分享1 小时前
【运维类资料集】实施运维方案(word)
java·开发语言·人工智能·集成测试·设计规范
xmh-sxh-13141 小时前
java常用框架结构
java
Freak嵌入式2 小时前
全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串
java·开发语言·javascript·数据结构·python·队列
篝火2 小时前
LangGPT结构化提示词编写实践
android·java·开发语言
yourkin6662 小时前
深入Volatile
java·jvm·python