का उपयोग करके कास्टिंग टाइप करें एक जावा विधि दी गई है जो किसी दिए गए स्ट्रिंग के लिए java.lang.Object
एस देता है। मैं इस विधि को स्कैला विधि में लपेटना चाहता हूं जो लौटाए गए उदाहरणों को कुछ प्रकार T
में परिवर्तित करता है। यदि रूपांतरण विफल रहता है, तो विधि None
वापस करनी चाहिए। मैं यह करने के लिए कुछ इसी तरह रहा हूँ:टाइप पैरामीटर
def convert[T](key: String): Option[T] = {
val obj = someJavaMethod(key)
// return Some(obj) if obj is of type T, otherwise None
}
convert[Int]("keyToSomeInt") // yields Some(1)
convert[String]("keyToSomeInt") // yields None
(कैसे) यह लक्ष्य प्राप्त किया जा सकता है स्काला के प्रतिबिंब एपीआई का उपयोग कर? मुझे अच्छी तरह से पता है कि convert
के हस्ताक्षर को बदला जाना पड़ सकता है।
धन्यवाद इस के लिए बहुत बहुत। मैंने अपना स्वयं का 'सुरक्षितकास्ट [टी: क्लासटाग]' विकल्प [किसी भी] से एक निहित रूपांतरण पर किया लेकिन ध्यान दिया कि प्राइमेटिव हमेशा किसी को वापस नहीं कर रहे थे। टाइप करने योग्य I का उपयोग करके शरीर को एक साधारण 'opt.flatMap (_। Cast [टी]) में बदल दिया गया है और यह बहुत अच्छा काम करता है। – ShawnFumo