2013-03-13 6 views
6

है कि मेरे पास कक्षा का आईटी टाइप ऑब्जेक्ट है या नहीं। मैं जानना चाहता हूं कि कक्षा एक अमूर्त वर्ग है या नहीं। क्या यह निर्धारित करने के लिए आईटी टाइप या आईसीओम्पिलेशन यूनिट में कोई विधि उपलब्ध है (प्रतिबिंब के अलावा)।आईटी टाइप एक अमूर्त वर्ग

import java.lang.reflect.Modifier; 

परीक्षण फिर निम्नलिखित के साथ:

+0

आपको टैग किया ग्रहण-प्लग इन, क्या कोई अन्य समस्या इन लोगों से समझ से है? – OQJF

उत्तर

0
Class clazz = IType.class; 
Modifier.isAbstract(clazz.getModifiers()) 
+0

उसने यह नहीं पूछा कि क्या 'आईटिप' स्वयं एक सार वर्ग है, तो उसने पूछा कि कैसे ग्रहण कार्यक्षेत्र (एक 'आईटीपीई' द्वारा प्रतिनिधित्व) में एक वर्ग अमूर्त है। –

0

निम्नलिखित आयात जोड़े

if(Modifier.isAbstract(IType.class.getModifiers())) 
    //do something... 
+0

उसने यह नहीं पूछा कि क्या 'आईटिप' स्वयं एक सार वर्ग है, तो उसने पूछा कि कैसे ग्रहण कार्यक्षेत्र (एक 'आईटीपीई' द्वारा प्रतिनिधित्व) में एक वर्ग अमूर्त है। –

1

आप IType के पूरी तरह से योग्य नाम हो सकता है (शायद IType.getTypeQualifiedName का उपयोग कर()) , उसके बाद वर्ग ऑब्जेक्ट प्राप्त करने के लिए उस नाम पर Class.forName() का उपयोग करें, फिर Modifier.isAbstract() का उपयोग करें क्योंकि अन्य ने अनुशंसा की है।

जावा के वर्ग वस्तु प्रतिबिंब सुइट का भाग है, इसलिए इस तरह से अभी भी थोड़े प्रतिबिंब का उपयोग करता है ...

8
IType type = ...; 
boolean isAbstract = Flags.isAbstract(type.getFlags()); 
संबंधित मुद्दे