作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我的代码中使用 lombok 的 @Delegate
注释。请检查下面的代码片段,它会抛出一个错误:getAge()
is already defined :
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();
}
}
最佳答案
来自 Lombok documentation :
To have very precise control over what is delegated and what isn't, write private inner interfaces with method signatures, then specify these private inner interfaces as types in
@Delegate(types=PrivateInnerInterfaceWithIncludesList.class, excludes=SameForExcludes.class).
这意味着要包含 I
中的所有内容,但只排除 getAge
,您可以像这样声明一个额外的内部接口(interface):
private interface Exclude {
int getAge();
}
并将其传递给 exclude
:
@Delegate(types = I.class, excludes = Exclude.class)
关于java - 如何在 Java 中使用 lombok 的 @Delegate 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62441188/
我是一名优秀的程序员,十分优秀!