मेरे पास जावा क्लास है जिसे मैंने स्कैला को पोर्ट किया है, लेकिन अभी भी कुछ जावा सबक्लास हैं जो अमूर्त कार्यक्षमता को कार्यान्वित करते हैं।क्या मैं स्कैला में जावा संरक्षित पहुंच के साथ एक विधि बना सकता हूं?
मूल जावा
public abstract class Base {
...
protected abstract Foo getFoo();
}
जो स्काला
तक बढ़ा दिया गयाpublic class Fred extends Base {
...
protected Foo getFoo() {
return foo;
}
}
अब जब मैं बंदरगाह बेस था
class Base {
...
protected def getFoo(): Foo
}
संकलक शिकायत है कि
, विरासत में मिला विधि की दृश्यता को कम नहीं कर सकते ...
अब मैं समझता हूँ कि क्योंकि अपने नियमों में आसानी से अलग हैं, स्काला संकलक बजाय बाईटकोड में दृश्यता लागू करने के लिए जाता है ताकि getFoo है javap'd कक्षा में जनता को चिह्नित किया। लेकिन
protected[packagename] def getFoo()
अभी भी एक पुक्का (जावा) संरक्षित विधि उत्पन्न नहीं करता है, हालांकि मुझे लगता है कि दृश्यता एक जैसी होनी चाहिए।
वहाँ स्काला संकलक को मनाने के लिए एक विधि है कि जावा संरक्षित करने पर विचार होगा फेंकना कोई तरीका है?
मैं एक आधिकारिक 'नहीं' –
बहुत बढ़िया सवाल को स्वीकार करेंगे। इस पृष्ठ तक पहुंचने से पहले मैंने उसी मार्ग का पालन किया। – ebruchez