可能重複:
How do I disambiguate in Scala between methods with vararg and without斯卡拉 - 曖昧參考超載定義 - 可變參數
我目前將應用程序移植到斯卡拉的組成部分,它採用了橢圓形庫。該方法的問題是Validator.validate方法。它有twosignatures:
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)
如何我能得到這個被不含糊?
它確實出現了不明確的引用對堆棧溢出超載的定義問題。我應該刪除這篇文章嗎?儘管雷克斯克爾確實給出了一個不在原文中的答案。 – OleTraveler 2011-06-02 16:16:59
我在那裏重新創建了我的答案,並以兩種方式對其進行了擴展:我爲方法編寫的簡短表單以及用於構造函數的替代方法。 – 2011-06-02 18:10:34