2011-10-10 22 views
5

जावा में जैसा कि मैं जानना चाहता हूं कि मेरा संदर्भ इंटरफेस के रूप में घोषित किया गया है या नहीं।कक्षा संदर्भ एक इंटरफ़ेस है या नहीं पहचानने के लिए कैसे?

function foo(classRef:Class){ 

if(classRef.isInterface(){ 
    //something 
} 

} 

उत्तर

4

आप AS3 Commons Reflect उपयोग कर सकते हैं यह जानकारी प्राप्त करने तो, यह एक समारोह है। आपका समारोह तो कुछ इस तरह दिखेगा:

function foo(classRef:Class) 
{ 
    var type:Type = Type.forClass(classRef); 

    if (type.isInterface) 
    { 
     //something 
    } 
} 
+0

धन्यवाद, कि अच्छा पुस्तकालय के बारे में इस पुस्तकालय के बारे में जानकारी साझा करने के लिए –

+0

धन्यवाद पता नहीं था। – Mady

3

मेरा स्वयं का अन्वेषण। यदि श्रेणी इंटरफ़ेस है, तो <factory> नोड में एक्सएमएल विवरण में यह <constructor> और <extendsClass> कभी नहीं होगा।

private function isInterface(type : *):Boolean { 
     var description : XML = describeType(type); 
     return (description.factory[0].descendants("constructor").length() == 0 
       && description.factory[0].descendants("extendsClass").length() == 0); 
} 

टेस्ट:

trace(isInterface(IEventDispatcher)); 
trace(isInterface(Button)); 
trace(isInterface(int)); 
trace(isInterface(XML)); 
trace(isInterface(String)); 

आउटपुट:

[trace] true 
[trace] false 
[trace] false 
[trace] false 
[trace] false 

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

  • कोई संबंधित समस्या नहीं^_^