从scala函数获取参数名称
trait PublicApi{
def sayHi(from:String,content:String)
}
我知道java中不可能在运行时获取“from”和“content”
但scala清单可以帮助我吗?喜欢定义
trait PublicApi{
def sayHi(from:String,content:String)(m:Manifest)
}
调用m.methodErasure.getArgumentName(0)将返回“from”
没有找到相关结果
已邀请:
2 个回复
梦话快家腹
翁茄口霉氖
都是关于类型的具体化,并且对参数名称一无所知。 除非你: 在编译时添加参数名称的元数据 或者使用ASM的缩减版本(Java字节码操作和分析框架)在运行时从类中提取调试信息 ,正如paranamer所做的那样(如评论中的Monkey提及),你将不会获得有关参数名称的任何信息(至少在Java 8.0之前没有,即使它最初是为Java6提到的!:提案仍在进行中)