【发布时间】:2013-12-29 10:31:18
【问题描述】:
我在 scala 中使用以下方法来获取类中的所有字段:
val fields = contract.getClass.getDeclaredFields.toList.map(value => {
value.setAccessible(true)
value.getName
})
contract 在我的代码中被定义为一个类。
由于我使用反射,问题是我得到另一个元素 $jacocoData 作为字段之一。我想忽略这个字段。这样做的“hacky”方法是知道它总是附加在列表末尾的事实,所以我可以通过将我的函数签名更改为包含productArity 并只取第一个arity 来“修复”它像这样的元素数量:
def getFields(contract: Contract, arity: Int): List[String] = {
val fields = contract.getClass.getDeclaredFields.toList.map(value => {
value.setAccessible(true)
value.getName
})
//to ignore $jacocoData (Java code coverage) field
val firstnFields = fields.take(arity)
firstnFields
}
根据this FAQ的最后一点,我需要摆脱一个类的合成成员。我该怎么做?
【问题讨论】:
标签: scala reflection jacoco synthetic