Olası Çoğalt ile: Şu anda skalasına bir uygulamanın parçası taşıma ediyorum ve onu Oval kitaplığı kullanır
How do I disambiguate in Scala between methods with vararg and withoutScala - aşırı tanımına belirsiz referans - varargs
. Yöntem, Validator.validate yöntemidir.
List<ConstraintViolation> validate(Object validatedObject)
List<ConstraintViolation> validate(Object validatedObject, String... profiles)
scala kodu şöyle genellikle görünür:: O twosignatures sahiptir
def validate(toValidate: AnyRef) = {
val validator = createValidator
validator.validate(toValidate)
}
Ve hata iletisi:
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)
Nasıl Buna açıklık olarak edilebilir alabilirim?
Bu yığın taşması üzerine aşırı tanım soruya belirsiz bir referans olarak belirdi. Bu gönderiyi silmeli miyim? Rex Kerr, orijinalde olmayan bir cevap vermesine rağmen. – OleTraveler
Cevabımı orada yeniden oluşturdum ve iki şekilde genişlettim: yöntemler için yazdığımın kısa bir formu ve kurucular için çalışan bir alternatif. –