我在 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
}
根据这个 FAQ的最后一点,我需要摆脱一个类的合成成员。我怎么做?