jackson@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缺少的function,实施自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 { ... }
这是可行的,因为注解参数中的数组types被转换为Kotlin中的可变参数,所以如果不从别的地方使用数组,就可以这样做:
@JsonIgnoreProperties("p0", "p1", "p2") class Example