リフレクション

リフレクション

ruby で云う methods(false) : 継承メソッド無視

http://subtech.g.hatena.ne.jp/cho45/20070221/1172032105

var t:XML = describeType(this);
for each (var m:XML in t.method) {
	if (m.@declaredBy == t.@name) {
		log(String(m.@name));
	}
}

ruby で云う methods(true) : 継承メソッドも列挙

var t:XML = describeType(this);
for each (var m:XML in t.method) {
	log(String(m.@name));
}

文字列からインスタンスを作成

new getDefinitionByName('ExampleClass');

ruby で云う methods(false) : 継承メソッド無視 をASReflectで

import org.libspark.asreflect.ASReflect;
import org.libspark.asreflect.Type;
import org.libspark.asreflect.Method;

var type:Type = ASReflect.getTypeFrom(this);
for each (var method:Method in type.declaredMethods) {
    log(method.name);
}

ruby で云う methods(true) : 継承メソッドも列挙 をASReflectで

import org.libspark.asreflect.ASReflect;
import org.libspark.asreflect.Type;
import org.libspark.asreflect.Method;

var type:Type = ASReflect.getTypeFrom(this);
for each (var method:Method in type.methods) {
    log(method.name);
}