Tôi đang sử dụng các phương pháp sau đây trong scala để có được giữ của tất cả các lĩnh vực trong một lớp học:Tìm các thành viên tổng hợp trong các lĩnh vực lớp học tại Scala
val fields = contract.getClass.getDeclaredFields.toList.map(value => {
value.setAccessible(true)
value.getName
})
contract
đã được định nghĩa như là một lớp trong mã của tôi. Vì tôi đang sử dụng sự phản chiếu, vấn đề là tôi nhận được một phần tử khác $jacocoData
là một trong các trường. Tôi muốn bỏ qua trường này. Cách 'hacky' để làm điều đó là biết thực tế là nó luôn được thêm vào cuối danh sách, vì vậy tôi có thể 'sửa' nó bằng cách thay đổi chữ ký chức năng của tôi thành số productArity
và chỉ lấy số lượng arity
đầu tiên này:
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
}
Theo điểm cuối cùng của this FAQ, tôi cần phải thoát khỏi tắt các thành viên tổng hợp của một lớp. Làm thế nào để làm điều đó?