【每天学个新注解】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();
    }
}
相关推荐
2301_7926748614 小时前
java学习day24
java
咸鱼2.021 小时前
【java入门到放弃】跨域
java·开发语言
indexsunny21 小时前
互联网大厂Java求职面试实战:微服务与Spring生态全攻略
java·数据库·spring boot·安全·微服务·面试·消息队列
沐苏瑶21 小时前
Java 搜索型数据结构全解:二叉搜索树、Map/Set 体系与哈希表
java·数据结构·算法
冬夜戏雪21 小时前
实习面经记录(十)
java·前端·javascript
skiy21 小时前
java与mysql连接 使用mysql-connector-java连接msql
java·开发语言·mysql
平生不喜凡桃李1 天前
浅谈 Linux 中 namespace 相关系统调用
java·linux·服务器
zb200641201 天前
CVE-2024-38819:Spring 框架路径遍历 PoC 漏洞复现
java·后端·spring
2401_895521341 天前
spring-ai 下载不了依赖spring-ai-openai-spring-boot-starter
java·人工智能·spring
何仙鸟1 天前
GarmageSet下载和处理
java·开发语言