gpt4 book ai didi

Scala - 对重载定义的不明确引用 - 使用可变参数

转载 作者:行者123 更新时间:2023-12-03 20:39:58 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:




10年前关闭。




Possible Duplicate:
How do I disambiguate in Scala between methods with vararg and without



我目前正在将应用程序的一部分移植到 scala,它使用 Oval 库。方法是问题是 Validator.validate 方法。它有 two signatures :
List<ConstraintViolation> validate(Object validatedObject)
List<ConstraintViolation> validate(Object validatedObject, String... profiles)

scala 代码通常如下所示:
def validate(toValidate: AnyRef) = {
val validator = createValidator
validator.validate(toValidate)
}

和错误信息:
error: ambiguous reference to overloaded definition,
[INFO] both method validate in class Validator of type (x$1: Any,x$2: <repeated...>[java.lang.String])java.util.List[net.sf.oval.ConstraintViolation]
[INFO] and method validate in class Validator of type (x$1: Any)java.util.List[net.sf.oval.ConstraintViolation]
[INFO] match argument types (AnyRef)
[INFO] this.validator.validate(toValidate)

我怎样才能做到这一点是明确的?

最佳答案

我认为这可能是 How do I disambiguate in Scala between methods with vararg and without 的副本

基本上,这是一个已知的 java-scala-interop 问题,唯一的解决方法涉及额外的 Java 适配器,以便在 Scala 中进行访问。

关于Scala - 对重载定义的不明确引用 - 使用可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6209120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com