संभव डुप्लिकेट के साथ:
How do I disambiguate in Scala between methods with vararg and withoutस्काला - अतिभारित परिभाषा को अस्पष्ट संदर्भ - varargs
मैं वर्तमान में स्केला के लिए एक आवेदन के हिस्से के पोर्टिंग कर रहा हूँ और यह ओवल पुस्तकालय उपयोग करता है। विधि सवाल है Validator.validate विधि।
List<ConstraintViolation> validate(Object validatedObject)
List<ConstraintViolation> validate(Object validatedObject, String... profiles)
स्केला कोड इस तरह आम तौर पर दिखता है:: यह twosignatures है
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
मैंने वहां अपना जवाब दोबारा बनाया, और इसे दो तरीकों से विस्तारित किया: मैंने जो तरीकों के लिए लिखा था, उसके लिए एक संक्षिप्त रूप, और एक वैकल्पिक जो रचनाकारों के लिए काम करता है। –