【发布时间】:2016-08-24 20:16:10
【问题描述】:
当我将原始 Int 类型设置为 Int64 时,它工作正常。我什至可以在补充类___Int64 中捕获一个构造方法,它接受两个 Int 值——高和低。似乎这种转换是静态的,甚至这样的代码也能完美运行:
var short:Int = 1111;
var long:Int64 = 2222;
long = short;
trace(long.high, long.low); // =0,1111
但是当我从 openfl.utils.Object 实例的字段中设置值时,例如:
var id:Int64 = data["id"];
"id" 字段的值是 Int 或 Int64 -- 我有一个错误:
TypeError:错误 #1034:类型强制失败:无法将 1111 转换为 haxe._Int64.___Int64。
当然,我可以检查字段的类型并正确地从Int 实例化一个Int64。但是有没有一种巧妙的解决方案来自动化类型转换?
【问题讨论】: