Haxe反射 - 子类和接口

Mat*_*loy 4 reflection inheritance types haxe

我可以使用Haxe Type类来反映对象的类,例如

getClass<T> (o:T):Class<T>
Run Code Online (Sandbox Code Playgroud)

有没有办法检查给定对象是实现接口还是另一个类的子类?

Ben*_*ris 7

你可以使用Std.is:

class Subclass extends OriginalClass implements IMyInterface {}

var myObj = new Subclass();

var isClass = Std.is(myObj, OriginalClass);      // returns true
var isSubclass = Std.is(myObj, Subclass);        // also returns true
var isInterface = Std.is(myObj, IMyInterface);   // also returns true
Run Code Online (Sandbox Code Playgroud)

如果第二个参数是对象的类,其父类之一或它实现的接口,则返回"true".