【发布时间】:2020-04-27 22:42:10
【问题描述】:
我有一个方法(在 Haxe 中)需要接受任何具有“宽度”和“高度”属性的对象。我假设我可以使用接口以某种方式做到这一点,但出于我的目的,传入的对象不需要实现接口,它只需要是 any 具有宽度和高度属性。
这个不行,因为你传入的对象需要实现接口:
Interface IWidthAndHeight{
public var width : Float;
public var height : Float;
}
Class Main{
var o : IWidthAndHeight;
public function setObject( o : IWidthAndHeight ){
this.o = o;
}
}
目前我正在使用动态,并手动检查属性是否存在,但有更聪明的方法吗?当前方法:
Class Main{
var o : Dynamic;
public function setObject( o : Dynamic ){
if (propertiesExist(o,['width','height'])){
this.o = o;
}
}
// Note: propertiesExist is my own method. Just assume it works :)
}
任何帮助表示赞赏。谢谢!
【问题讨论】: