2017-10-05 2 views
2

Je suis en train d'utiliser la @Entity suivante:constructeurs correspondants d'erreur lorsque @embedding de la bibliothèque

@Entity(tableName = "transactions") 
data class TransactionWithState(
     @PrimaryKey 
     val hash: String, 

     @Embedded 
     val transaction: Transaction, 

     @Embedded 
     val state: TransactionState) 

transaction est une classe à partir d'une bibliothèque et crée le problème suivant:

e: Tried the following constructors but they failed to match: 
e: Transaction(org.kethereum.model.ChainDefinition,java.lang.Long,org.kethereum.model.Address,java.math.BigInteger,java.math.BigInteger,java.util.List<java.lang.Byte>,java.math.BigInteger,org.kethereum.model.Address,java.lang.String,java.math.BigInteger) : [arg0 : null, arg1 : null, arg2 : null, arg3 : null, arg4 : null, arg5 : null, arg6 : null, arg7 : null, arg8 : null, arg9 : null] 
e: error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type). 
e: 

Quand je Copiez et collez la classe Transaction sur mon projet qu'il compile bien. Mais c'est une duplication et une indirection que j'aimerais éviter. D'abord, cela ressemblait à un problème avec la commande: https://github.com/walleth/kethereum/commit/fb9123c68739a315b42b3d7e57b016c7953530bf Mais malheureusement, c'était une impasse - actuellement, je ne vois aucun moyen d'utiliser cette classe directement - serait heureux de tout indice sur la façon de le faire.

+0

Avez-vous essayé de changer la transaction pour être transaction var: Transaction? au lieu? Du log, il semblerait que 1) Il ne peut pas générer l'objet Transaction du tout (toutes les valeurs sont nulles) ou 2) Comment ça marche, construire un objet vide puis appeler les différents setters – NSimon

+0

Oui - malheureusement cela ne fait aucune différence :-( – ligi

Répondre

1

Le problème signalé à Google Issues Tracker:

Une solution de contournement pour est maintenant créer un constructeur vide et tous les champs que var pas val

a ajouté le support pour kotlin utilisant kotlin-metadata. va sortir dans 1.1 alpha 2