Scala 通过反射检索方法时出现NoSuchMethodException
我正在尝试通过is名称获取类方法,例如:Scala 通过反射检索方法时出现NoSuchMethodException,scala,reflection,types,Scala,Reflection,Types,我正在尝试通过is名称获取类方法,例如: case class A(i : Int) {def geti = i} val a = A(123) val met = a.getClass.getMethod("geti") 这似乎有效,但如果我尝试在双人床上做同样的操作: val a:Double = 3.0 a.getClass.getMethod("toString") 我遇到了以下错误: java.lang.NoSuchMethodException: double.toString
case class A(i : Int) {def geti = i}
val a = A(123)
val met = a.getClass.getMethod("geti")
这似乎有效,但如果我尝试在双人床上做同样的操作:
val a:Double = 3.0
a.getClass.getMethod("toString")
我遇到了以下错误:
java.lang.NoSuchMethodException: double.toString()
at java.lang.Class.getMethod(Class.java:1786)
你能帮我找出我遗漏了什么吗?来自
抽象最终类scala的文档。Double
:
双精度,64位IEEE-754浮点数(相当于Java的
双基元类型)是scala.AnyVal的子类型。实例
Double不由基础运行时中的对象表示
系统
存在来自scala的隐式转换。Double=>
scala.runtime.richdoull,它提供了有用的非原语
行动
因此,scala
Double
s仅通过隐式转换为richduble
,而classDouble
本身不包含此方法。来自于abstract final class scala的文档中。Double
:
双精度,64位IEEE-754浮点数(相当于Java的
双基元类型)是scala.AnyVal的子类型。实例
Double不由基础运行时中的对象表示
系统
存在来自scala的隐式转换。Double=>
scala.runtime.richdoull,它提供了有用的非原语
行动
因此scalaDouble
s通过隐式转换为RichDouble
,只有toString()
方法,而类Double
本身不包含此方法