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
}
}
我自己的探索。如果類是接口,比在<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