是否可以使用lombok向静态工厂方法添加注释

时间:2018-11-12 11:47:40

标签: java jackson lombok

如果我创建类似的类

@Value
@AllArgsConstructor(staticName = "of", onConstructor = @__(@JsonCreator))
public class Test {
    String value;
}

onConstructor属性被添加到构造函数中(这很有意义)。但是我需要向工厂方法添加注释。这可能吗?

我的根本问题是尝试制作

{
    "test": 2018
}

反序列化为:

SomeJavaClass:
 private final Test test

由于ConstructorProperties,此方法不起作用。

1 个答案:

答案 0 :(得分:1)

在同时设置staticNameonConstructor的情况下,将注释放在静态工厂方法上将是最合理的事情。在这种情况下,常规构造函数变为private,因此无法在其他任何地方使用(丑陋的反射技巧除外)。因此,在大多数情况下,注释仅对静态工厂方法有意义。

但是,这不是Lombok的当前行为,因此无法以不同的方式配置Lombok。我建议您create a feature request at GitHub。 但是,请注意onX功能是一项实验功能,因此该功能请求可能会被拒绝或推迟。