Java 如何从一个状态的契约状态表单中获取数据,而无需强制转换?

Java 如何从一个状态的契约状态表单中获取数据,而无需强制转换?,java,kotlin,state,corda,Java,Kotlin,State,Corda,有没有一种方法可以从状态数据的ContractState表单中检索数据,而无需强制转换?我尝试使用下面给出的反射,但它没有给出值(我猜它返回的是状态字段“status”的元数据) historyForId的类型为:ArrayList val temp2=historyForId.first().get(“contractStateData”)!!。javaClass.getDeclaredField(“状态”) 添加Corda分类账上的答案。发现字段的“isAccessible”设置为false

有没有一种方法可以从状态数据的ContractState表单中检索数据,而无需强制转换?我尝试使用下面给出的反射,但它没有给出值(我猜它返回的是状态字段“status”的元数据)

historyForId的类型为:ArrayList
val temp2=historyForId.first().get(“contractStateData”)!!。javaClass.getDeclaredField(“状态”)

添加Corda分类账上的答案。发现字段的“isAccessible”设置为false。通过将“isAccessible”显式指定为true,问题得以解决。

请共享ContractStateclass@ShaluTD它是一种契约状态类型。不是用户定义的。是否可以添加更多代码段?你是怎么得到ArrayList的?你好@Ashutosh。谢谢你的回复。希望你意识到我和本杰明是同一个人,我们在slack讨论过这个问题。嘿,是的,本杰明。我猜是这样的,因为问题完全一样。
historyForId is of type : ArrayList<Map<String,ContractState>>
val temp2 = historyForId.first().get("contractStateData")!!.javaClass.getDeclaredField("status")