0

例如,为func方法附加一个隐式参数 id:
之前

def func(p1: String) = { println("hi")}

@Param
def func(p1: String)(implicit id: String = "default") = { println("hi")}

scala meta 能做到这一点吗?

4

1 回答 1

1

我知道如何做到这一点:

//create Param  
val impParam = Term.Param(Nil, Term.Name("id"), Some(Type.Name("String")), Some(Term.Name("default")))
//append to existing params seq.`defn` is this method meta object
val appendImpParam = defn.paramss :+ impParam

注意:您最好检查该方法是否存在隐式参数。

于 2017-04-25T02:43:10.520 回答