使用 Delphi 将 JLong 转换为 Double 类型

JLong to Double type casting with Delphi

我在网上搜索了如何将 JLong (JavaType) 转换为 Double 以在 C++ 代码中使用它,但没有找到示例。 我尝试了多种方法来投射这个 JLong,但 none 有效。

function TimeSinceBoot(const aContext: JContext): Double;
  begin
    result := (((TJSystemClock.JavaClass.ELAPSED_REALTIME div 1000(JLong)) div 60(JLong))(JDouble))(Double);
  end;

上面写的还是运算符或;失踪。 有什么建议吗?

除了你 使用错误的语法来转换 (并且转换语法无论如何都是 well documented), in 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;