2011-03-23 22 views
6

सामान्य प्रकार के साथ एक वर्ग है:वास्तविक प्रकार का वास्तविक प्रकार कैसे प्राप्त करें?

class Action[T] 

इसके कुछ उदाहरण बनाएं, एक सूची में डालें:

val list = List(new Action[String], new Action[Int]) 

इसे इटरेट करें, और वास्तविक प्रकार के उदाहरण कैसे प्राप्त करें?

list foreach { action => 
    // how do I know the action is for a String or an Int? 
} 
+1

कौन-सी भाषा के बारे में हम बात कर रहे हैं? – Doodloo

+0

क्या आप 'action.getClass()' का उपयोग कर सकते हैं? – Gabe

+0

'action.getClass' वास्तविक प्रकार नहीं बता सकता है – Freewind

उत्तर

11

स्काला, संकलन में सामान्य प्रकार पैरामीटर मिटा देता है ताकि आप में आप क्या पारंपरिक प्रतिबिंब प्रदान करता है के अलावा अन्य वस्तु कुछ अतिरिक्त सबूत है की आवश्यकता होगी। देखें:

How do I get around type erasure on Scala? Or, why can't I get the type parameter of my collections?

इस सवाल यह सूचित करते हैं हो सकता है कुछ जादू कुछ परिस्थितियों में लागू करने के लिए लगता है:

Accounting for type parameters in a Scala generic class 'equals' method... are manifests the only way?

संबंधित मुद्दे