Reflect

Reflect (Class)

The Reflect API is a way to manipulate values dynamically through an abstract interface in an untyped manner. Use with care.

See: https://haxe.org/manual/std-reflection.html

Static Members

hasField(o: Dynamic, field: String): Bool

Tells if structure o has a field named field.

This is only guaranteed to work for anonymous structures. Refer to Type.getInstanceFields for a function supporting class instances.

If o or field are null, the result is unspecified.

Name Type
o Dynamic
field String
Returns
Bool

field(o: Dynamic, field: String): Dynamic

Returns the value of the field named field on object o.

If o is not an object or has no field named field, the result is null.

If the field is defined as a property, its accessors are ignored. Refer to Reflect.getProperty for a function supporting property accessors.

If field is null, the result is unspecified.

Name Type
o Dynamic
field String
Returns
Dynamic

setField(o: Dynamic, field: String, value: Dynamic): Void

Sets the field named field of object o to value value.

If o has no field named field, this function is only guaranteed to work for anonymous structures.

If o or field are null, the result is unspecified.

Name Type
o Dynamic
field String
value Dynamic

getProperty(o: Dynamic, field: String): Dynamic

Returns the value of the field named field on object o, taking property getter functions into account.

If the field is not a property, this function behaves like Reflect.field, but might be slower.

If o or field are null, the result is unspecified.

Name Type
o Dynamic
field String
Returns
Dynamic

setProperty(o: Dynamic, field: String, value: Dynamic): Void

Sets the field named field of object o to value value, taking property setter functions into account.

If the field is not a property, this function behaves like Reflect.setField, but might be slower.

If field is null, the result is unspecified.

Name Type
o Dynamic
field String
value Dynamic

callMethod(o: Dynamic, func: haxe.Function, args: Array<Dynamic>): Dynamic

Call a method func with the given arguments args.

The object o is ignored in most cases. It serves as the this-context in the following situations:

(neko) Allows switching the context to o in all cases. (macro) Same as neko for Haxe 3. No context switching in Haxe 4. (js, lua) Require the o argument if func does not, but should have a context. This can occur by accessing a function field natively, e.g. through Reflect.field or by using (object : Dynamic).field. However, if func has a context, o is ignored like on other targets.

Name Type
o Dynamic
func haxe.Function
args Array<Dynamic>
Returns
Dynamic

fields(o: Dynamic): Array<String>

Returns the fields of structure o.

This method is only guaranteed to work on anonymous structures. Refer to Type.getInstanceFields for a function supporting class instances.

If o is null, the result is unspecified.

Name Type
o Dynamic
Returns
Array<String>

isFunction(f: Dynamic): Bool

Returns true if f is a function, false otherwise.

If f is null, the result is false.

Name Type
f Dynamic
Returns
Bool

compare(a: compare.T, b: compare.T): Int

Compares a and b.

If a is less than b, the result is negative. If b is less than a, the result is positive. If a and b are equal, the result is 0.

This function is only defined if a and b are of the same type.

If that type is a function, the result is unspecified and Reflect.compareMethods should be used instead.

For all other types, the result is 0 if a and b are equal. If they are not equal, the result depends on the type and is negative if:

  • Numeric types: a is less than b
  • String: a is lexicographically less than b
  • Other: unspecified

If a and b are null, the result is 0. If only one of them is null, the result is unspecified.

Name Type
a compare.T
b compare.T
Returns
Int

compareMethods(f1: Dynamic, f2: Dynamic): Bool

Compares the functions f1 and f2.

If f1 or f2 are null, the result is false. If f1 or f2 are not functions, the result is unspecified.

Otherwise the result is true if f1 and the f2 are physically equal, false otherwise.

If f1 or f2 are member method closures, the result is true if they are closures of the same method on the same object value, false otherwise.

Name Type
f1 Dynamic
f2 Dynamic
Returns
Bool

isObject(v: Dynamic): Bool

Tells if v is an object.

The result is true if v is one of the following:

  • class instance
  • structure
  • Class<T>
  • Enum<T>

Otherwise, including if v is null, the result is false.

Name Type
v Dynamic
Returns
Bool

isEnumValue(v: Dynamic): Bool

Tells if v is an enum value.

The result is true if v is of type EnumValue, i.e. an enum constructor.

Otherwise, including if v is null, the result is false.

Name Type
v Dynamic
Returns
Bool

deleteField(o: Dynamic, field: String): Bool

Removes the field named field from structure o.

This method is only guaranteed to work on anonymous structures.

If o or field are null, the result is unspecified.

Name Type
o Dynamic
field String
Returns
Bool

copy(o: Null<copy.T>): Null<copy.T>

Copies the fields of structure o.

This is only guaranteed to work on anonymous structures.

If o is null, the result is null.

Name Type
o Null<copy.T>
Returns
Null<copy.T>

makeVarArgs(f: Function): Dynamic

Transform a function taking an array of arguments into a function that can be called with any number of arguments.

Name Type
f Function
Returns
Dynamic

Private Members

instanceFields(c: Class<Dynamic>): Array<String>
Name Type
c Class<Dynamic>
Returns
Array<String>

Metadata

Name Parameters
:hxGen -