如何获取scala特征中所有方法的名称
How to get name of all methods in a scala trait
我需要我定义的 Scala 特性中的所有方法名称。我知道这听起来像是一个微不足道的问题,但我找不到与该特征相关的任何答案,它们都围绕着 类。
具体来说,我需要所有抽象方法的名称。但是,如果我能得到所有方法的名称,而不管抽象与否,那也行。
说我有这个特质A
trait A {
def myDefinedInt: Int = 2
def myAbstractString: String
}
我需要所有方法的列表(或者最好只是抽象方法)
我对 scala 比较陌生,所以虽然我了解 类 和接口。特征对我来说是新的。
提前致谢!
您可以使用 getDeclaredMethods
获取所有方法,然后只过滤抽象方法:
import java.lang.reflect.Modifier
classOf[A]
.getDeclaredMethods
.filter(m => Modifier.isAbstract(m.getModifiers))
.map(_.getName)
.foreach(println)
它打印:myAbstractString
.
我需要我定义的 Scala 特性中的所有方法名称。我知道这听起来像是一个微不足道的问题,但我找不到与该特征相关的任何答案,它们都围绕着 类。
具体来说,我需要所有抽象方法的名称。但是,如果我能得到所有方法的名称,而不管抽象与否,那也行。
说我有这个特质A
trait A {
def myDefinedInt: Int = 2
def myAbstractString: String
}
我需要所有方法的列表(或者最好只是抽象方法)
我对 scala 比较陌生,所以虽然我了解 类 和接口。特征对我来说是新的。
提前致谢!
您可以使用 getDeclaredMethods
获取所有方法,然后只过滤抽象方法:
import java.lang.reflect.Modifier
classOf[A]
.getDeclaredMethods
.filter(m => Modifier.isAbstract(m.getModifiers))
.map(_.getName)
.foreach(println)
它打印:myAbstractString
.