我有一堆类,它们包含许多内部/嵌套类,需要注释用于反序列化(@JsonIgnoreProperties)和减少Equals重写样板(@EqualsAndHashCode,Groovy默认API,而不是Lombok)。
我的代码如下所示:
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(includeFields = true)
class SomeClass {
String id
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(includeFields = true)
class InnerOne {
String foo
}
@JsonIgnoreProperties(ignoreUnknown = true)
@EqualsAndHashCode(includeFields = true)
class InnerTwo {
String bar
}
// and so on...
}
这些注释都属于第三方库,并且未标记为@Inherited,因此我不得不在每个内部类中重复这些注释。
有没有办法减少样板?
答案 0 :(得分:0)
注释处理器的作者已决定是否继承注释是一个好主意。
这些都是一种可辩护的选择。我倾向于倾向于后者,因为它提高了可读性,并且代码的读取频率高于编写代码。
如果要更改行为,则需要通过修改其源代码来修改注释处理器的语义。在您的情况下,可能更容易编写额外的注释。