scala反射错误java
我正在尝试使用 scala.reflect 获取类属性并将其写入 XML。 但是我收到一个奇怪的错误
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?
I'm trying to use scala.reflect to get the class attributes and to write them XML.
However I'm getting a strange error
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>
}
The error:
error: type mismatch;
found : scala.reflect.Field => Unit
required: java.lang.reflect.Field => ?
for(field: scala.reflect.Field <- getClass().getDeclaredFields()) {
So even if I explicitly use scala.reflect.Field, it still is viewed as java.lang.reflect.Field?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
getClass().getDeclaredFields()
返回java.lang.reflect.Field
对象。除非您找到在这两个类之间进行转换的方法,否则您无法将它们声明为 scala.reflect.Field 并期望它们能够工作。编辑:修复您的代码:
getClass().getDeclaredFields()
returnsjava.lang.reflect.Field
objects. Unless you find a way to convert between these two classes, you cannot declare them asscala.reflect.Field
and expect them to work.EDIT: fix for your code: