杰克逊@JsonIgnoreProperties多个字段与Kotlin
我无法与kotlin一起使用@JsonIgnoreProperties。 我需要忽略一个以上的属性,而且我看到很多教程/ SO问题,在java中,通常你会这样做:
@JsonIgnoreProperties({ "p0", "p1", "p2" }) class Example(){...}
所以在kotlin这将是:
@JsonIgnoreProperties(value = arrayOf( "p0", "p1", "p2" )) class Example(){...}
JsonIgnoreProperties接口的value
字段应接受数组,因为它是这样声明的:
public String[] value() default { };
但编译器抱怨并希望一个字符串,而不是一个数组。 我甚至不能重复注释,所以我应该如何忽略多个字段?
编辑:似乎是一个kotlin缺少的功能,实施自1.2测试版。 可以使用value = ["p0", "p1", "p2"]
作为注释。 在1.2 beta之前,可以使用@JsonIgnoreProperties("p0", "p1", "p2")
,没有办法在数组前面加上value =
您可以在这里使用spread运算符 ,这就是Java to Kotlin转换器在您的示例代码中所做的工作,也是Android Studio建议的一个快速解决方案:
@JsonIgnoreProperties(value = *arrayOf( "p0", "p1", "p2" )) class Example { ... }
这是可行的,因为注释参数中的数组类型被转换为Kotlin中的可变参数,所以如果不从其他地方使用数组,就可以这样做:
@JsonIgnoreProperties("p0", "p1", "p2") class Example