1
私はscala.reflectを使用してクラス属性を取得し、XMLを記述しようとしています。 しかし、私はscala reflection error java
def toXml(): xml.Elem = {
<node>{
for(field: scala.reflect.Field <- getClass().getDeclaredFields()) {
val tmpString = "<" + field.name + ">" + this.getClass().getMethods.find(_.getName == field.name).get.invoke(this) + "</" + field.name + ">"
print(tmpString)
}
}</node>
}
エラーが奇妙なエラーを取得しています:
error: type mismatch;
found : scala.reflect.Field => Unit
required: java.lang.reflect.Field => ?
for(field: scala.reflect.Field <- getClass().getDeclaredFields()) {
私は明示的にscala.reflect.Fieldを使用するのであればしても、それはまだをjava.lang.reflect.Fieldと見られています?
は、Scalaでは、クラスのフィールドのリストを取得する方法はありますか? – user485659
@ user485659、編集を参照してください。多くの場合、型を宣言する必要はなく、推論されるので注意してください。 – Geo
ありがとう、私は今ここで別の問題に直面している、私は、カスタムクラスを参照する属性の型を取得しようとしている、私はちょうどそれがObject型のそれを得る { フィールド:java.lang.reflect.Field < - getClass()。getDeclaredFields()) yield {this.getClass ().getMethods.find(_。getName == field.getName())。get.invoke(this)} } –
user485659