आकर्षक शीर्षक के लिए खेद है। ;-)क्या मैं स्कैला में कोई पैकेज-प्राइवेट क्लास नहीं रख सकता हूं?
मैं स्काला में एक पैकेज-निजी विधि के साथ एक पैकेज-निजी वर्ग बनाना चाहते हैं, तो मेरी कक्षा इस तरह कुछ हद तक दिखता है:
package net.java.truevfs.ext.pace
import ...
private[pace] abstract class AspectController(controller: FsController)
extends FsDecoratingController(controller) {
private[pace] def apply[V](operation: => V): V
... // lots of other stuff
}
हालांकि, अगर मैं javap का उपयोग क्या जांच करने के लिए स्काला संकलक प्रभावी रूप से बनाता है, मैं कुछ इस तरह मिलती है:
$ javap -classpath target/classes net.java.truevfs.ext.pace.AspectController
Compiled from "AspectController.scala"
public abstract class net.java.truevfs.ext.pace.AspectController extends net.java.truevfs.kernel.spec.FsDecoratingController implements scala.ScalaObject{
public abstract java.lang.Object apply(scala.Function0);
...
}
इसका मतलब यह है कि हालांकि स्काला संकलक का उपयोग प्रतिबंधों का सम्मान हो सकता है, मैं अभी भी इस वर्ग के किसी भी जावा कोड है, जो एक स्पष्ट कैप्सूलीकरण उल्लघंन होने पर कह सकते हैं।
क्या मुझे कुछ याद आ रही है? क्या इस काम को इरादे से बनाने का कोई तरीका है?
+1 अजीब शीर्षक –