2013-05-18 6 views
5

में वेक्टर से टी के वर्ग पाने के लिए मैं इस कोड लिखा है: कैसे जावा

public static <T> void getList(Vector<T> result){ 
    System.out.println(result.getClass().getName()); 
} 

मैं T के वर्ग के नाम लिखना चाहते हैं, लेकिन मैं यह नहीं मिल सकता है। मैं यह कैसे कर सकता हूँ?

उत्तर

14

जहाँ तक मुझे पता है कि आप नहीं कर सकते हैं। जावा जेनेरिक टाइप एरर का उपयोग करें, इसलिए रनटाइम पर Vector<T> किसी भी टेम्पलेट तर्क के बिना Vector की तरह व्यवहार करता है।

इसके बजाय आप अपने वेक्टर के तत्व के प्रकार से पूछ सकते हैं। http://docs.oracle.com/javase/tutorial/java/generics/erasure.html

भी देखें इस सवाल का जवाब: Java generics - type erasure - when and what happens

दूसरे शब्दों में:

यहाँ प्रकार विलोपन का एक संक्षिप्त विवरण है

:

void someMethod(Vector<T> values) { 
    T value = values.get(0); 
} 

के बराबर है

void someMethod(Vector values) { 
    T value = (T) values.get(0); 
} 
रनटाइम पर

लेकिन कुछ संकलन समय के साथ आप जिस प्रकार के लिए कास्टिंग कर रहे हैं उसके लिए चेक करता है।

+0

ठीक है मैं समझ गया :) बहुत बहुत धन्यवाद –