更新后出现 "Ambiguous implicit values" 错误

After update getting "Ambiguous implicit values" Error

我正在尝试将我的游戏应用程序更新到 2.3。

我自己写了一个 html 助手:

@(field: play.api.data.Field, options: Seq[(String,String)], args: (Symbol,Any)*)(implicit handler:  views.html.helper.FieldConstructor, lang: play.api.i18n.Lang)

@input(field, args:_*) { (id, name, value, htmlArgs) =>
    @options.map { v =>
        <label class="radio inline">
            <input type="radio" id="@(id)_@v._1" name="@name" value="@v._1" @(if(value == Some(v._1)) "checked" else "") @toHtmlArgs(htmlArgs)> <span>@v._2</span>
        </label>
    }
}

我得到的错误是:

both method implicitJavaLang in object PlayMagicForJava of type => play.api.i18n.Lang and value lang of type play.api.i18n.Lang match expected type play.api.i18n.Lang ambiguous implicit values

我不明白这里有什么问题。删除隐式语言对我来说不是一个选项,因为在某些 html 助手中这是必要的。我也不想将 lang 设为 "real" 参数。我想利用隐式的优势。

有解决办法吗?

任何帮助都会很棒 :)

提前致谢

选项要么删除声明隐式语言的位置(检查您的导入,可能存在 import play.core.j.PlayMagicForJava._),要么显式传递值。第二个参数列表中的隐式参数仍然可以显式传递。

您可以安全地删除隐式 lang 参数,因为 Play 2.3 在其隐式上下文中已经有一个。