लगता है कि यह मेरे करीब हो जाता है की तरह है, लेकिन (क) काफी नहीं (नीचे देखें), और (ख) एक नाम की स्ट्रिंग प्रतिनिधित्व का उपयोग कर एक हैक की तरह लगता है ...स्कैला (2.10) प्रकार टैग या प्रतीक से जावा क्लास प्राप्त करने का कोई तरीका?
scala> import scala.reflect.runtime.universe._import scala.reflect.runtime.universe._
scala> val t = typeOf[Int]
t: reflect.runtime.universe.Type = Int
scala> t.typeSymbol.asClass.fullName
res0: String = scala.Int
scala> object X { class Y }
defined module X
scala> val y = typeOf[X.Y]
y: reflect.runtime.universe.Type = X.Y
scala> Class.forName(y.typeSymbol.asClass.fullName)
java.lang.ClassNotFoundException: X.Y [...]
मैं कुछ और अधिक लापता रहा हूँ इस जानकारी तक पहुंचने की सीधी विधि? या यह सबसे अच्छा होगा, अगर मुझे किसी भी समय कक्षा की जानकारी की आवश्यकता है, तो बस जावा क्लास की जानकारी के समानांतर सेट को रखने के लिए? (ओह!)
यदि आप किसी भी प्रकार के किसी भी प्रकार का उदाहरण प्राप्त कर सकते हैं, तो क्या आप सिर्फ java.lang.Object-y goodness पर वापस नहीं आ सकते हैं, और myObj.getClass()। GetName() को कॉल कर सकते हैं? उदाहरण के लिए –
, वस्तु X {वर्ग Y} परिभाषित मॉड्यूल एक्स स्केला> (नई XY) .getClass.getName res7: java.lang.String = एक्स $ Y –
एक त्वरित सुझाव के रूप में, चलाने की कोशिश 'स्केला -Xprint : टाइपर 'यह देखने के लिए कि आरईपीएल वास्तव में एक्स को अपनी वस्तुओं में लपेट रहा है या नहीं। – pedrofurla