我正在尝试使用以下@Entity:
@Entity(tableName = "transactions")
data class TransactionWithState(
@PrimaryKey
val hash: String,
@Embedded
val transaction: Transaction,
@Embedded
val state: TransactionState)
Transaction是库中的一个类,会产生以下问题:
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:
当我将Transaction类复制并粘贴到我的项目时,它编译得很好。但这是一个我希望避免的重复和间接。 首先,它看起来像订单的问题: https://github.com/walleth/kethereum/commit/fb9123c68739a315b42b3d7e57b016c7953530bf 但不幸的是,这是一个死胡同 - 目前我认为没有办法直接使用这个类 - 对于如何做到这一点的任何提示都会感到高兴。
答案 0 :(得分:1)
Google Issues Tracker报告的问题:
现在的解决方法是创建一个空构造函数,所有字段为var no val
使用 kotlin
添加了对 kotlin-metadata
的支持。 将在1.1 alpha 2