【每天学个新注解】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_780789663 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设4 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn5 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川5 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵5 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David5 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1006 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin6 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
霸道流氓气质7 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
captain3767 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis