首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中使用lombok的@Delegate注释

如何在Java中使用lombok的@Delegate注释
EN

Stack Overflow用户
提问于 2020-06-18 02:06:41
回答 1查看 6K关注 0票数 3

我想在我的代码中使用lombok的@Delegate注释。请检查下面的代码片段,它会引发一个错误:getAge()已经定义:

代码语言:javascript
运行
复制
public interface I {
    String getName();
    int getAge();
}

@Data
public class Vo {
    private String name;
    private long age;
}

@AllArgsConstructor
public class Adapter implements I {

    @Delegate(types = I.class)
    private Vo vo;

    //I want to use my own code here,Because vo.getAge() returns a long,But I.getAge() expects a int
    public int getAge(){
        return (int) vo.getAge();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-18 02:19:59

从lombok 文档

若要非常精确地控制委托和未委派的内容,请使用方法签名编写私有内部接口,然后将这些私有内部接口指定为 ( @Delegate(types=PrivateInnerInterfaceWithIncludesList.class,excludes=SameForExcludes.class)。

这意味着要包含I中的所有内容,但仅排除getAge,您可以声明如下所示的额外内部接口:

代码语言:javascript
运行
复制
private interface Exclude {
    int getAge();
}

并将其传递给exclude

代码语言:javascript
运行
复制
@Delegate(types = I.class, excludes = Exclude.class)
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62441188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档