Gegeben Klasse FooErste Anzahl der Argumente von Klassenkonstruktor akzeptiert
class Foo
{
public function new(foo:Int, bar:Int, foobar:Int) {}
}
Anzahl von new
akzeptierte Argumente abrufen. Ich habe versucht @:rtti
mit - dann habe ich versucht
for(field in haxe.rtti.Rtti.getRtti(Foo).fields) {
if (field.name == "new") {
trace(field.type);
}
}
Das Ergebnis vielversprechend war
**
TestAll.hx:246: CFunction({
length : 3,
h : {
item : {
name : foo,
opt : false,
t : CAbstract(<...>,<...>),
value : null
},
next : {
item : {
name : <...>,
opt : <...>,
t : <...>,
value : null
},
next : {
item : <...>,
next : null
}
}
},
q : {
item : {
name : foobar,
opt : false,
t : CAbstract(<...>,<...>),
value : null
},
next : null
}
},CAbstract(Void,{
length : 0
}))**
Also habe ich versucht field.type.length
.
Test/TestAll.hx: 246: Zeichen 14-31: haxe.rtti.CType hat kein Feld Länge
Nach einem kurzen Blick auf http://api.haxe.org/haxe/rtti/CType.html#CFunction, ich
CFunction(args:List<FunctionArgument>, ret:CType)
sehen
??? Ich bin verwirrt - es enthält eine Liste, aber es gibt nur CType zurück? Wie komme ich zu den gewünschten Informationen?
Vielen Dank.
PS. Ich möchte keine Makrolösung, das wird im Komponententest verwendet, und die Generierung der Konstruktion selbst ist bereits makro-schwer.