5
에 클래스 필드에서 합성 회원 찾기 :I 클래스의 모든 필드를 잡아 스칼라에서 다음과 같은 방법을 사용하고 스칼라
val fields = contract.getClass.getDeclaredFields.toList.map(value => {
value.setAccessible(true)
value.getName
})
contract
이 내 코드에서 클래스로 정의하고있다. 리플렉션을 사용하고 있으므로 문제는 다른 요소 인 $jacocoData
을 필드 중 하나로 가져 오는 것입니다. 나는이 분야를 무시하고 싶다. '해킹'하는 방법은 목록의 끝에 항상 추가된다는 사실을 알고 있기 때문에 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의 마지막 지점에 따르면, 전 클래스의 합성 구성원을 제거 얻을 필요가있다. 어떻게해야합니까?