2017-10-30 7 views
1

kotlinで@JsonIgnorePropertiesを使用する際に問題があります。 kotlinでJackson @JsonIgnoreProperties複数のフィールド(Kotlin)

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

だから、それは次のようになります:

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

私は複数のプロパティを無視する必要がある、と私は、javaで、通常、あなたがそのような何かを、多くのチュートリアル/ SOの質問を参照してくださいそれはこのように宣言されていますので、JsonIgnorePropertiesインターフェイスのvalueフィールドは、配列を受け入れる必要があります。

public String[] value() default { }; 

しかし、コンパイラは文句と文字列ではなく配列をしたいです。 注釈を複製することさえできないので、複数のフィールドを無視するにはどうすればよいですか?

EDIT:1.2ベータ版以降に実装されたkotlin欠落機能のようです。注釈にはvalue = ["p0", "p1", "p2"]を使用することができます。 1.2ベータ版、それは@JsonIgnoreProperties("p0", "p1", "p2")を使用することが可能になる前に、value =

答えて

2

を持つ配列を付加する方法はあなたには、Java Kotlinへのコンバータはあなたの例のコードで何をするか、また、Androidのメーカーのように示唆するものである、ここspread operatorを使用することはできませんクイックフィックス:

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

The quick fix intention action

あなたはどこか別の場所からアレイを使用していない場合は、単にこれを行うことができますので、注釈パラメータの配列型は、Kotlinで可変引数に変換され得るので、これは動作します:

@JsonIgnoreProperties("p0", "p1", "p2") 
class Example 
関連する問題