如何对Scala类成员进行迭代以找到找到的空值

时间:2019-06-11 16:08:20

标签: scala

我需要检查在定义为以下内容的Scala类(Test.class)中所有值是否为空:

class Test extends Serializable {
  a: String = _
  b: String = _
  c: String = _
}

我不能更改此类(这是我项目中的旧代码)。 如果没有很多我该怎么办?真正的班级有22个领域。

我尝试使用Java反射来检测已定义的字段,但是它们都是每个定义的,因此我无法访问它,因为这些字段是反射器专用的。 (criteria.getClass.getDeclaredFields

1 个答案:

答案 0 :(得分:1)

感谢@Dmytro Mitin,它对我有用。我认为我将使用这种方法来检查not null元素:

testClass.getClass.getDeclaredFields.flatMap(f => {
        f.setAccessible(true)
        Option(f.get(criteria))
    }).length