访问Kotlin实体的属性

时间:2018-01-25 21:54:50

标签: kotlin

我是Kotlin的新手,如果我没有正确地阐述概念,请道歉。我有一个实体的实例

[TestEntity(applicationId=1, timestamp=2018-01-24T18:40:30, issueState=MA, product=test, status=sold, paymentMode=VISA, premium=null)]

我正在编写一个服务,它将使用这些密钥并使用它们来创建报告的标题。密钥可能会根据用户尝试生成的报告类型而更改,这将对将要实例化的实体产生影响。

我希望能够遍历此实体,以便我可以创建一个用于标头的数组。有关我如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:2)

我认为最干净的解决方案是storing values in a map and delegating properties to it

如果没有一些冗长的getter链或丑陋的反思恶作剧,不要以为你可以在类字段上进行迭代。

例如,您可以在此处访问地图字段,就像它们是类字段一样,但也可以轻松地遍历map

data class TestEntity(val map : Map<String, Any>){
    val appId : Int by map
    val timeStamp : Long by map
    (... more fields)
}