Tia*_*gyu 8 java annotations lombok
我想@Delegate在我的代码中使用 lombok 的注释。请检查下面的代码片段,它会抛出一个错误:getAge()已定义:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
Swe*_*per 13
来自龙目岛文档:
要非常精确地控制委托的内容和不委托的内容,请编写带有方法签名的私有内部接口,然后将这些私有内部接口指定为
Run Code Online (Sandbox Code Playgroud)@Delegate(types=PrivateInnerInterfaceWithIncludesList.class, excludes=SameForExcludes.class).
这意味着要包含所有内容I,但仅排除getAge,您可以声明一个额外的内部接口,如下所示:
private interface Exclude {
int getAge();
}
Run Code Online (Sandbox Code Playgroud)
并将其传递给exclude:
@Delegate(types = I.class, excludes = Exclude.class)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9888 次 |
| 最近记录: |