我在使用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 beta开始实现。可以使用value = ["p0", "p1", "p2"]
进行注释。在1.2 beta之前,可以使用@JsonIgnoreProperties("p0", "p1", "p2")
,无法使用value =
预先添加数组
答案 0 :(得分:4)
您可以在这里使用spread operator,这是Java to Kotlin转换器对您的示例代码所做的事情,以及Android Studio建议的快速修复:
@JsonIgnoreProperties(value = *arrayOf( "p0", "p1", "p2" ))
class Example { ... }
这是有效的,因为注释参数中的数组类型在Kotlin中转换为varargs,所以如果你没有在其他地方使用数组,你可以这样做:
@JsonIgnoreProperties("p0", "p1", "p2")
class Example