gpt4 book ai didi

Jackson @JsonIgnoreProperties 使用 Kotlin 的多个字段

转载 作者:行者123 更新时间:2023-12-02 06:50:13 24 4
gpt4 key购买 nike

我在将 @JsonIgnoreProperties 与 kotlin 一起使用时遇到问题。我需要忽略多个属性,并且我看到许多教程/SO 问题,使用 java,通常你会这样做:

@JsonIgnoreProperties({ "p0", "p1", "p2" })
class Example(){...}

所以在 kotlin 中应该是:

@JsonIgnoreProperties(value = arrayOf( "p0", "p1", "p2" ))
class Example(){...}

JsonIgnoreProperties 接口(interface)的 value 字段应该接受数组,因为它是这样声明的:

public String[] value() default { };

但是编译器提示并想要一个字符串,而不是一个数组。连注解都复制不了,怎么忽略多个字段呢?

编辑:似乎它是 kotlin 缺少的功能,自 1.2 beta 开始实现。可以使用 value = ["p0", "p1", "p2"] 进行注释。在 1.2 beta 之前可以使用 @JsonIgnoreProperties("p0", "p1", "p2"),没有办法在数组前面加上 value =

最佳答案

您可以使用 spread operator在这里,这是 Java 到 Kotlin 转换器对您的示例代码所做的事情,也是 Android Studio 建议的快速修复:

@JsonIgnoreProperties(value = *arrayOf( "p0", "p1", "p2" ))
class Example { ... }

The quick fix intention action

这是可行的,因为注释参数中的数组类型在 Kotlin 中被转换为可变参数,所以如果你不使用其他地方的数组,你可以这样做:

@JsonIgnoreProperties("p0", "p1", "p2")
class Example

关于Jackson @JsonIgnoreProperties 使用 Kotlin 的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47019258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com