5
Javaの場合と同様に、自分の参照がInterfaceとして宣言されているかどうかを知りたいと思います。クラス参照がインタフェースであるかどうかを識別する方法?
function foo(classRef:Class){
if(classRef.isInterface(){
//something
}
}
Javaの場合と同様に、自分の参照がInterfaceとして宣言されているかどうかを知りたいと思います。クラス参照がインタフェースであるかどうかを識別する方法?
function foo(classRef:Class){
if(classRef.isInterface(){
//something
}
}
あなたがこの情報を取得するためにAS3 Commons Reflectを使用することができます。あなたの関数は次のようになります:
function foo(classRef:Class)
{
var type:Type = Type.forClass(classRef);
if (type.isInterface)
{
//something
}
}
私自身の探検。 classが<factory>
ノードの記述XMLの場合よりも、<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
ありがとう、この素晴らしいライブラリについて知りませんでした –
このライブラリに関する情報を共有してくれてありがとうございます。 – Mady