我在线搜索了如何将JLong(JavaType)转换为Double以便在C ++代码中使用它,但没有找到示例。
我尝试了各种方法来投射此JLong,但没有任何效果。
function TimeSinceBoot(const aContext: JContext): Double;
begin
result := (((TJSystemClock.JavaClass.ELAPSED_REALTIME div 1000(JLong)) div 60(JLong))(JDouble))(Double);
end;
它说仍然是运算符或;失踪。
有什么建议么 ?
最佳答案
除了您使用错误的语法进行强制转换(强制转换语法为well documented)外,在Delphi中,无论如何,you can't cast an integral type to a floating point type也是如此。而且,您当然无法将JLong转换为双倍。
但是显然,在Delphi转换中,JLong
是带有称为doubleValue
的方法的接口。使用:
Result := TJSystemClock.JavaClass.ELAPSED_REALTIME.doubleValue / 60000.0;