निम्नलिखित कोड पर विचार करें:कैसे (स्काला 2.8) प्रतिबिंब के माध्यम से एक फ़ील्ड का मान का उपयोग करने के
class Foo(var name: String = "bar")
अब मैं मूल्य प्राप्त करने के लिए प्रयास करें और प्रतिबिंब के माध्यम से इसके बारे में सही प्रकार:
val foo = new Foo
val field = foo.getClass.getDeclaredField("name")
field.setAccessible(true)
//This is where it doesn't work
val value = field.get(????)
मैंने field.get (foo) जैसी चीजों की कोशिश की, लेकिन यह सिर्फ एक java.lang.Object लौटाता है लेकिन कोई स्ट्रिंग नहीं। असल में मुझे सही प्रकार की आवश्यकता है, क्योंकि मैं इस पर एक विधि का आह्वान करना चाहता हूं (ई जी। ToCharArray)।
ऐसा करने का सुझाव दिया गया तरीका क्या है?
मैंने लापता getClass तय किया, यह केवल एक निरीक्षण था। मुझे आश्चर्य है कि बिना किसी चीज के यह जानने के बिना कलाकार कैसे किया जाए। अगर मुझे कक्षा के बारे में सब कुछ पता था तो मुझे संभालना होगा मुझे प्रतिबिंब की आवश्यकता नहीं होगी ... सुझावों के लिए धन्यवाद! – soc
आप वस्तु को मिलान कर सकते हैं जैसे कि 'वैल्यू मैच {केस एस: स्ट्रिंग =>/* स्ट्रिंग के साथ कुछ करें */case _ =>/* कुछ और करें * /} '। पता नहीं है कि मैं समझता हूं कि आप क्या करना चाहते हैं। – gerferra