मेरे पास एक स्कैला क्लास है जो जावा इंटरफ़ेस को कार्यान्वित करने का प्रयास कर रही है (इकाई परीक्षण उद्देश्यों के लिए जावाई 7 में एंटीटीमेनगर विशिष्ट होने के लिए)।एकाधिक परिवर्तनीय पैरामीटर विधियों के साथ स्कैला में जावा इंटरफ़ेस को कैसे कार्यान्वित करें (इरेज़र समस्या टाइप करें)?
public StoredProcedureQuery createStoredProcedureQuery(String procedureName, Class... resultClasses);
public StoredProcedureQuery createStoredProcedureQuery(String procedureName, String... resultSetMappings);
स्काला कार्यान्वयन में मेरे पास है: इंटरफ़ेस इन दोनों तरीकों (दूसरों के बीच) है
override def createStoredProcedureQuery(procedureName: String, resultClasses: Class[_]*): StoredProcedureQuery = ???
override def createStoredProcedureQuery(procedureName: String, resultSetMappings: String*): StoredProcedureQuery = ???
हालांकि, मैं निम्नलिखित त्रुटि मिलती है:
MyTest.scala:134: error: double definition:
method createStoredProcedureQuery:(procedureName: String, resultSetMappings: String*)javax.persistence.StoredProcedureQuery and
method createStoredProcedureQuery:(procedureName: String, resultClasses: Class[_]*)javax.persistence.StoredProcedureQuery at line 133
have same type after erasure: (procedureName: String, resultSetMappings: Seq)javax.persistence.StoredProcedureQuery
override def createStoredProcedureQuery(procedureName: String, resultSetMappings: String*): StoredProcedureQuery = ???
मुझे नहीं है चारों ओर एक काम के साथ आने में सक्षम हो गया। मेरी Google खोज भी ढूंढने और जवाब देने में विफल रही। मैं स्कैला 2.10.4 का उपयोग कर रहा हूँ।
धन्यवाद। यह काम किया। क्या इसका मतलब है कि भाषा में "छेद" है। यदि स्कैला जावा के साथ इंटरफेस करने के लिए है, तो ऐसा लगता है कि इसे जावा varargs (बेहतर स्कैला varargs के अलावा) का समर्थन करना चाहिए। – Integrator
समस्या प्रति var varss के साथ नहीं है, लेकिन varargs और विधि अधिभार के बीच बातचीत। अस्पष्टताओं को हल करने के लिए जावा में जटिल नियम हैं, संकलक पर हार्डकोड किए गए हैं। मेरी समझ यह है कि स्कैला डिजाइनरों ने फैसला किया कि स्कैला कंपाइलर में इन नियमों को दोबारा बनाने के बजाय उनके पास बेहतर चीजें थीं ... तो हाँ, स्कैला में कुछ हिस्सों हैं जहां जावा के साथ अंतःक्रियाशील नहीं है और हमें अभी भी काम पर जावा पर वापस आने की जरूरत है इन सीमाओं के आसपास। – Jelmo