首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Math.toIntExact工具的安卓版本兼容性方法

Math.toIntExact工具的安卓版本兼容性方法
EN

Stack Overflow用户
提问于 2020-02-01 17:45:48
回答 1查看 308关注 0票数 1

Math.toIntExact方法在我的Android6.0模拟器上抛出了一个异常。(较新的仿真器版本也可以)

This Microsoft doc是我找到的唯一关于它的文档。我认为Math.toIntExact在Android9.0之前是不是不兼容?

代码语言:javascript
复制
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.dmurphy.remotescrumpoker, PID: 9527
    java.lang.NoSuchMethodError: No static method toIntExact(J)I in class Ljava/lang/Math; or its super classes (declaration of 'java.lang.Math' appears in /system/framework/core-libart.jar)
        at com.dmurphy.remotescrumpoker.Activity_TeamDetails$6.onComplete(Activity_TeamDetails.java:268)
        at com.google.android.gms.tasks.zzj.run(Unknown Source)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:148)
        at android.app.ActivityThread.main(ActivityThread.java:5417)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
D/FA: Event not sent since app measurement is disabled
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-01 17:57:38

根据文档,Math::toIntExact是在API level 24中引入的,也就是Android7.0。所以没错,它在Android 6上是不可用的。

好消息是,您可以通过从java.lang.Math source code中提取它来轻松地自己实现它。

代码语言:javascript
复制
public static int toIntExact(long value) {
    if ((int)value != value) {
        throw new ArithmeticException("integer overflow");
    }
    return (int)value;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60015731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档