case class Keyword(id: Int = 0, words: String)
val my= Keyword(123, "hello")
val fields: Array[Field] = my.getClass.getDeclaredFields
for (i <- fields.indices) {
println(fields(i).getName +":"+ my.productElement(i))
}
ID: 123как отображать значение прецедентного класса в Скале
название: название ключевого слова
это нормально.
def outputCaseClass[A](obj:A){
val fields: Array[Field] = obj.getClass.getDeclaredFields
for (i <- fields.indices) {
println(fields(i).getName +":"+ obj.productElement(i))
}
}
outputCaseClass(my)
это неправильно
классы Case простираются 'product' так использовать итератор продукта, как описано здесь: http://stackoverflow.com/a/17827262/1154145 – nattyddubbs
Спасибо так много. но когда я помещаю этот код в функцию, он не работает. –
Что вам не хватает, так это 'implicit ClassTag' для' A', который понадобится для вашего метода для работы –