import swing._
object PeerTest extends SimpleSwingApplication {
def top = new MainFrame {
val p = peer.getMousePosition
}
}
error: ambiguous reference to overloaded definition,
both method getMousePosition in class Container of type (x$1: Boolean)java.awt.Point
and method getMousePosition in class Component of type()java.awt.Point
match expected type ?
val p = peer.getMousePosition
देता है, लेकिन प्रकार
val p: Point = peer.getMousePosition
जोड़ने यह ठीक करता है। क्यूं कर?
संपादित करें: का कारण बनता है समस्या:
class A {
def value() = 123
}
class B extends A {
def value(b: Boolean) = 42
}
object Main extends App {
println ((new B).value)
}
का कारण नहीं है समस्या:
class A {
def value() = 123
def value(b: Boolean) = 42
}
class B extends A {}
object Main extends App {
println ((new B).value)
}
तो मैं जवाब की व्याख्या करने के कारण है कि यह केवल तब होता है जब तरीकों विभिन्न वर्गों में हैं लगता है ।
तो अगर हम कक्षा में ओवरलोडिंग विधियों को जोड़ने का निर्णय लेते हैं तो हम लोगों के कोड को तोड़ सकते हैं ... यह बहुत अच्छा प्रतीत नहीं होता है। मैंने सोचा था कि विधि के बाद '_' डालने का तरीका आंशिक रूप से लागू फ़ंक्शन बनाने का तरीका था। –
@ लुइगी अधिभार जोड़कर लोगों के कोड को तोड़ने के कई तरीके हैं, यह सिर्फ एक और तरीका है। –
http://stackoverflow.com/questions/2510108/why-avoid-method-overloading – retronym