java构造函数注释_java - 为什么当构造函数用@JsonCreator注释时,它的参数必须用@JsonProperty注释?...

Java代码在运行时通常无法访问参数名称(因为它被编译器删除),因此如果您需要该功能,则需要使用Java 8的内置功能或使用诸如ParaNamer之类的库来获取访问权限 它。

因此,为了在使用Jackson时不必使用构造函数参数的注释,您可以使用这两个Jackson模块中的任何一个:

杰克逊模块参数名称

使用Java 8时,此模块允许您获取无注释的构造函数参数。要使用它,首先需要注册模块:

ObjectMapper mapper = new ObjectMapper();

mapper.registerModule(new ParameterNamesModule());

然后使用-parameters标志编译代码:

javac -parameters ...

链接:[https://github.com/FasterXML/jackson-modules-java8/tree/master/parameter-names]

杰克逊模块-paranamer

另一个只需要您注册模块或配置注释内省(但不是注释中指出的两者)。 它允许您在1.8之前的Java版本上使用无注释的构造函数参数。

ObjectMapper mapper = new ObjectMapper();

// either via module

mapper.registerModule(new ParanamerModule());

// or by directly assigning annotation introspector (but not both!)

mapper.setAnnotationIntrospector(new ParanamerOnJacksonAnnotationIntrospector());

链接:[https://github.com/FasterXML/jackson-modules-base/tree/master/paranamer]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值