क्या फ़ंक्शन में पारित सामान्य प्रकार से मेल खाने का कोई तरीका है? मैं क्या करना चाहते हैं:स्कैला जेनेरिक प्रकार से कैसे मिलान करें?
def getValue[T](cursor: Cursor, columnName: String): T = {
val index = cursor.getColumnIndex(columnName)
T match {
case String => cursor.getString(index)
case Int => cursor.getInteger(index)
}
मैं classOf
या typeOf
की तरह कुछ के बारे में सोचा है, लेकिन उनमें से कोई भी बस प्रकार है, लेकिन वस्तुओं के लिए स्वीकार्य है।
मेरा विचार T
प्रकार का कुछ ऑब्जेक्ट बनाने के लिए भी था और फिर इसके प्रकार की जांच करें, लेकिन मुझे लगता है कि एक बेहतर समाधान हो सकता है।
+1। लेकिन ओह, मुझे स्कैला में संशोधित जेनेरिक पसंद आएंगे। :) –
@ Patrykwwiek: कुछ अतिरिक्त क्षेत्र में प्रकार की जानकारी स्टोर करना संभव है, लेकिन यह जावा संगतता को तोड़ देगा। जावा से प्रकारों में टाइप एरर से बचने का कोई तरीका नहीं है। – senia
मुझे पता है, मुझे पता है। बस इच्छापूर्ण सोच। शायद मैं सी #/एफ # द्वारा थोड़ी सी खराब हो गई हूं। –