2017-08-16 3 views
2

のために、私はfirebaseを使用していますが、これは私のデータクラス定義である:ClassMapper:いいえセッター/フィールドaBooleanType

data class ClaimOrder(val address: String? = null, 
        val amount: Long = 0L, 
        val isProcessed: Boolean = false, 
        val onCreate: kotlin.Any? = ServerValue.TIMESTAMP) 

は、しかし、ログに私は次の警告見ています:W/ClassMapper: No setter/field for isProcessed found on class com.guness.bitfarm.service.models.ClaimOrder

を私は@SerializedName("isProcessed")を試みたが、なしています運。一致していないgsonkotlin方法の基礎となるように生成されるようにさまざまなアクセサメソッドを引き起こしisProcessed

変数名:私はここに正確な理由を知らないが

+0

読み取り専用プロパティを宣言するために 'val'が使用されます。あなたは 'var'を使ってそのプロパティの設定を行う必要があります。 – BakaWaii

+0

@BakaWaiiもそれを試しました、興味深いことに私は 'isProcessed'だけを見ています – guness

+0

ああ、この[post](https://stackoverflow.com/questions/37481017/kotlin-view-setenabled-function-missing)が関連しているかどうかを見てください。 – BakaWaii

答えて

4

私はゲッターとセッターの命名規則について言及Firebaseから任意の公式文書を見つけることができませんが、彼らはJavaBean-like getters/setters

を探しているように、それはあなたがisProcessedという名前のプロパティを持っている場合は、Firebaseはする必要がありそうですゲッター/セッターの名前はgetIsProcessed()/setIsProcessed()です。ただし、Kotlinでプロパティがisで始まる場合は、別の命名規則が適用されます。それはKotlin docによると、isProcessed()/setProcessed()という名前のgetter/setterメソッドをgenarates:

プロパティの名前が別の名前のマッピングルールが使用されている、isで始まる場合:ゲッターの名前は、プロパティと同じになります名前とセッターの名前はissetに置き換えて得られます。たとえば、プロパティisOpenの場合、ゲッターはisOpen()と呼ばれ、セッターはsetOpen()と呼ばれます。このルールは、Booleanだけでなく、あらゆるタイプのプロパティに適用されます。

1

は私の推測です。

ただし、ちょうどprocessedを使用するとうまく解決するようです。

関連する問題