Когда я установил примитив Int
, тип Int64
работает отлично. Я даже могу поймать метод конструктора в дополнительном классе ___Int64
, который принимает дваInt
значения - высокие и низкие. Кажется, что эта отливка статично и даже такой код работает отлично:haxe: целые целые числа для абстрактных Int64
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: Error #1034: Type Coercion failed: cannot convert 1111 to haxe._Int64.___Int64.
конечно, я могу проверить тип поля и правильно создать экземпляр Int64
из Int
. Но есть ли опрятное решение для автоматизации литья типов?
Я добавил преобразование из 'Float', поскольку это обычный тип при создании объектов с большими номерами JSON. – meps