【每天学个新注解】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();
    }
}
相关推荐
Maynor9963 小时前
OpenClaw 玩家必备:用 AI 自动追踪社区最新动态
java·服务器·人工智能
堕2743 小时前
java数据结构当中的《排序》(一 )
java·数据结构·排序算法
亓才孓3 小时前
[Class的应用]获取类的信息
java·开发语言
开开心心就好3 小时前
AI人声伴奏分离工具,离线提取伴奏K歌用
java·linux·开发语言·网络·人工智能·电脑·blender
80530单词突击赢3 小时前
JavaWeb进阶:SpringBoot核心与Bean管理
java·spring boot·后端
爬山算法4 小时前
Hibernate(87)如何在安全测试中使用Hibernate?
java·后端·hibernate
云姜.4 小时前
线程和进程的关系
java·linux·jvm
是码龙不是码农4 小时前
支付防重复下单|5 种幂等性设计方案(从初级到架构级)
java·架构·幂等性
曹牧4 小时前
Spring Boot:如何在Java Controller中处理POST请求?
java·开发语言
heartbeat..4 小时前
JVM 性能调优流程实战:从开发规范到生产应急排查
java·运维·jvm·性能优化·设计规范