我有一个应该用Lombok@Builder
构建的类:
import lombok.Builder;
import lombok.Getter;
@Getter
@Builder(toBuilder = true)
public class Foo {
private String myName;
private int myAge;
public static class FooBuilder {
// I'm overriding this method to add some validation logic
public FooBuilder myName(String myName) {
// some simple logic to validate "myName"
this.myName= myName;
return this;
}
}
}
在设置前,我想添加一些简单的逻辑来验证myName
字段。但我不想为我的年龄做这件事。因此,myAge
字段的生成器和FooBuilder
构造函数将由Lombok生成。
这会导致PMD抛出错误:
规则:AccessorMethodGeneration优先级:3避免自动生成的方法访问私有字段和内部/外部类的方法。
我应该抑制这个错误还是有更好的方法来实现我想要的?
创建规则AccessorClassGeneration和AccessorMethodGeneration是为了帮助Android(!)当DEX格式存在限制时。这些生成的类/方法计入当时可能的总类/方法(64k)。
如果您没有开发旧的Android应用程序,那么您可能可以从规则集中完全删除这些规则。例如,现在有了多索引,可以在你的应用程序中使用超过64k的方法。
此外,自Java11以来,java编译器不再生成这些访问器类和方法,请参阅JEP 181:基于嵌套的访问控制。
有一个带有一些功能的接口。基类实现接口。然后在子类中重写函数。 但是@override给出了编译器错误“方法不从其超类重写方法” 问题:在子类中,如何覆盖基类中实现的接口函数? }
我想在SpringMVC的登录和注销页面中使用不同的用户名和角色。 我已从以下链接学习,我正在使用spring 4.2.5: http://www.raistudies.com/spring-security-tutorial/role-based-spring-jsp-taglibs/ 但是我的一个班级显示了一个错误: Eclipse显示方法上的编译时错误, AjaxAuthentication
我试图覆盖add(),但它不会编译 错误消息 java:36:错误:名称冲突:AVLTree中的add(E#1)和BinaryTree中的add(E#2)具有相同的擦除,但两者都不重写另一个公共void add(E toInsert)^,其中E#1、E#2是类型变量:E#1扩展了在类AVLTree中声明的Comparable E#2扩展了在类BinaryTree中声明的Comparable
所有com.android.support库必须使用完全相同的版本规范(混合版本会导致运行时崩溃)。找到版本27.0.2、26.1.0.示例包括com.android.support:support-compat:27.0.2和com.android.support:animated-vector-drawable:26.1。 应用插件:“com.android.application” 当我运行
有人能详细解释一下这条规则吗。规则:AccessorMethodGeneration优先级:3避免自动生成的方法访问私有字段和内部/外部类的方法,并提供字段和方法的具体示例?
家长: 儿童: