Ruo*_*kki 4 java overriding lombok sonarqube
我在我的项目中使用 lombok 并且有一个界面:
public interface MyInterface{
Object getA()
}
Run Code Online (Sandbox Code Playgroud)
还有一个班级
@Getter
public class MyClass implements MyInterface{
private Object a;
private Object b
}
Run Code Online (Sandbox Code Playgroud)
我检查了生成的类,类中生成的方法不是@Override
我想知道如何添加这个注释?失踪的后果是什么@Override?
这可能是另一个问题,但该代码由声纳库分析,声纳说私有字段 a 从未使用过。
我已经看过有关sonarqube + lombok = 误报的主题
但就我而言, b 不会产生误报。所以我不认为这有直接关系
您是否找到了无需重新实现 getA() 即可避免此问题的解决方案?
您可以使用注释的onMethod属性将任何您想要的注释添加到生成的方法中。
@Getter
public class MyClass implements MyInterface{
@Getter(onMethod = @__(@Override))
private Object a;
private Object b
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,出于风格问题,我可能会将班级级别移至@Getter其他领域。如果有c, d,e都应该使用正常(无注释)@Getter 逻辑,我会将其保留为上面的样子。
public class MyClass implements MyInterface{
@Getter(onMethod = @__(@Override))
private Object a;
@Getter
private Object b
}
Run Code Online (Sandbox Code Playgroud)
您可能还想启用 Lombok 生成的注释。它将防止某些工具(覆盖率、静态分析等)费心检查 Lombok 的方法。不确定它在这种情况下是否有帮助,但我几乎在我的所有项目中都启用了它。
lombok.addLombokGeneratedAnnotation = true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8764 次 |
| 最近记录: |