我在与Kotlin一起使用@JsonIgnoreProperties时遇到麻烦。我需要忽略多个属性,并且会看到许多教程/ SO问题,在使用Java的情况下,通常会执行以下操作:
@JsonIgnoreProperties({ "p0", "p1", "p2" })
class Example(){...}
Run Code Online (Sandbox Code Playgroud)
因此在kotlin中将是:
@JsonIgnoreProperties(value = arrayOf( "p0", "p1", "p2" ))
class Example(){...}
Run Code Online (Sandbox Code Playgroud)
valueJsonIgnoreProperties接口的字段应接受数组,因为它是通过以下方式声明的:
public String[] value() default { };
Run Code Online (Sandbox Code Playgroud)
但是编译器抱怨并想要一个字符串,而不是一个数组。我什至无法复制注释,所以我应该怎么做才能忽略多个字段?
编辑:似乎这是自1.2 Beta起实施的kotlin缺失功能。可以value = ["p0", "p1", "p2"]用于注释。在1.2 Beta之前,可以使用@JsonIgnoreProperties("p0", "p1", "p2"),无法在数组前添加value =
您可以在此处使用传播运算符,这是Java到Kotlin转换器对示例代码的作用,也是Android Studio建议的快速修复方法:
@JsonIgnoreProperties(value = *arrayOf( "p0", "p1", "p2" ))
class Example { ... }
Run Code Online (Sandbox Code Playgroud)
之所以可行,是因为注释参数中的数组类型在Kotlin中被转换为varargs,因此,如果您不使用其他地方的Array,则可以这样做:
@JsonIgnoreProperties("p0", "p1", "p2")
class Example
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |