首页 > 解决方案 > Scala类构造函数很多字段

问题描述

我有一个带有 50 多个字段的主构造函数的类:

class HBaseEve   (val rowKey: String,
                 ...
                  val customer: String,
                 ...
                  val managedEntityKey: String,
                 ...
                  val withdrawalReasonForWithdrawal: String)

在我的伴生对象中,我声明了一个名为 parse 的方法,用于从 HBase 表中的记录创建 HBaseEve 对象:

    object HBaseEve {
final val COLUMN_FAMILY = "cr"
  override def parse(result: Result): HBaseEve  = {
    if (result.getRow != null)
      new HBaseEve   (
        Bytes.toString(result.getRow),
      ...
        Bytes.toString(result.getValue(HBaseEve.COLUMN_FAMILY.getBytes(), "customer".getBytes())),
        ...
Bytes.toString(result.getValue(HBaseEve.COLUMN_FAMILY.getBytes(), "managedEntityKey".getBytes())),
        ...
        Bytes.toString(result.getValue(HBaseEve.COLUMN_FAMILY.getBytes(), "withdrawalReasonForWithdrawal".getBytes()))
      )
    else null
  }

但是,这种方法 parse 不是很优雅,因为我的班级中有 50 多个字段需要手动填写。我不知道如何用其他更有效和更专业的方法替换此方法解析。

对此有任何想法吗?我搜索了 scala.Reflection 但我不知道如何使用它。无论如何,我愿意接受任何想法。

谢谢

标签: scalaclassreflectionhbase

解决方案


推荐阅读