gpt4 book ai didi

java - Android 随机数 llegalArgumentException : n <= 0: 0

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:43:44 25 4
gpt4 key购买 nike

我正在尝试生成 0 到 43 范围内的随机数。但在某些设备(OnePlus Android 5.0.2 和 Nexus 5.1)上,它抛出 java.lang.IllegalArgumentException: n <= 0: 0。我无法捕获该异常下面是我生成随机数的代码。

    Random rand = new Random();
int maximum = mListofStrings.getMyString().size() - 1;
Log.e("Max",""+maximum);
Mint.logEvent("Maximum", MintLogLevel.Error);
int randomNum;
try{

// randomNum = rand.nextInt(43);
randomNum = rand.nextInt(maximum);
}catch (IllegalArgumentException e){
e.printStackTrace();
randomNum = 8;
}

Log.e("random number", randomNum+"");

还有日志是

1   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2329)
2 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
3 at android.app.ActivityThread.access$900(ActivityThread.java:147)
4 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1296)
5 at android.os.Handler.dispatchMessage(Handler.java:102)
6 at android.os.Looper.loop(Looper.java:135)
7 at android.app.ActivityThread.main(ActivityThread.java:5254)
8 at java.lang.reflect.Method.invoke(Native Method)
9 at java.lang.reflect.Method.invoke(Method.java:372)
10 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:898)
11 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:693)
12Caused by: java.lang.IllegalArgumentException: n <= 0: 0
13 at java.util.Random.nextInt(Random.java:182)
14 at com.algo.toiletbreak.ShareActivity.onCreate(Unknown Source)
15 at android.app.Activity.performCreate(Activity.java:5933)
16 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
17 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2282)
18 ... 10 more

最佳答案

如果 nextInt 方法提示其参数为 0,则 maximum0。这意味着 mListofStrings.getMyString().size() 返回了 1。尝试生成从 0(含)到 0(不含)的随机数是没有意义的;这样的 int 不存在。但参数值比可返回的最大随机值多一。这意味着您在分配 maximum 时不应减去 1

int maximum = mListofStrings.getMyString().size();

您可能还想测试 size() 方法是否返回 0,并专门处理这种情况。

关于java - Android 随机数 llegalArgumentException : n <= 0: 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30247320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com