【问题标题】:Creating new Object from args given through cmd line gives me OutOfMemoryError thrown from UncaughtExceptionhandler从通过 cmd 行给出的 args 创建新对象会给我从 UncaughtExceptionhandler 抛出的 OutOfMemoryError
【发布时间】:2019-05-10 16:37:15
【问题描述】:

我不知道为什么会抛出上述错误。当我只输入 2 个参数(例如 22.5 公里)时,它工作正常,使用更多参数(20.5 公里 400 英尺)会产生错误。

代码如下:

if (args.length > 0)
{            
    for (int i = 0; i < args.length; i = +2)
    {
        lengthsCollection.add(new Length(Double.parseDouble(args[i]), args[i+1]));    
    }
}

class Length 在其他任何地方都可以正常工作

public class Length {
    private double valueM;
    private String unitM;

    public Length(double value, String unit)  
    {
        this.valueM = value;
        this.unitM = unit;
    }

有人可以帮帮我吗?我认为如果用户输入正确(长度+单位对),我的代码应该可以工作

【问题讨论】:

    标签: java args cmdline-args


    【解决方案1】:

    本次迭代:

     for (int i = 0; i < args.length; i = +2)
    

    args.length &gt; 2 时永远执行,因为i 永远保持2。因此内存错误。

    你需要的是:

    for (int i = 0; i < args.length; i += 2)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多