Ani*_*mar 4 reflection scala traits
我需要我定义的scala特征中的所有方法名称。我知道这听起来像是一个小问题,但我找不到与特质有关的任何答案,它们全都围绕着课堂而展开。
具体来说,我需要所有抽象方法的名称。但是,如果我能获得所有方法的名称,而不论是否抽象,那也可以。
说我有这个特质
trait A {
def myDefinedInt: Int = 2
def myAbstractString: String
}
Run Code Online (Sandbox Code Playgroud)
我需要所有方法的列表(最好只是抽象方法)
我对scala比较陌生,因此尽管我获得了类和接口。特质对我来说是新的。
提前致谢!
您可以使用所有方法,getDeclaredMethods然后仅过滤抽象方法:
import java.lang.reflect.Modifier
classOf[A]
.getDeclaredMethods
.filter(m => Modifier.isAbstract(m.getModifiers))
.map(_.getName)
.foreach(println)
Run Code Online (Sandbox Code Playgroud)
打印:myAbstractString。