我尝试这个时遇到上述错误
for (int i = 0 ; i < uaCount.get(args[1]).occurrences ; i++)
{
out.write(uaCount.get(args[1]).singleValues.get(i));
}
这里定义了出现次数和单值:
public static class NumberHolder
{
public int occurrences = 0;
public int sumtime_in_milliseconds = 0;
public ArrayList<Long> singleValues = new ArrayList<Long>();
}
有什么方法可以解决这个问题吗?
4 回答
鉴于问题的 Headers ,我的猜测是你只想使用
String.valueOf
来创建一个字符串:请注意,值之间不存在值之间的分隔符 . 我还建议,为了便于阅读,你会写一些类似于:
此外,我强烈建议您不要像现在这样使用公共字段 . 尝试更仔细地封装您的类型 . 如果
occurrences
实际上是列表的大小,您可以使用增强的for
循环来简化操作 . 例如:更改:
至
会删除错误 . 当然,您将希望避免在singleValues中放置任何long或Long值 .
来自documentation of java.io.BufferedWriter:
Long不是文本,Jon Skeet已经提出了解决方案,用String.valuesOf()将Long转换为String .
将其更改为
(int)(long)out.write(uaCount.get(args[1]).singleValues.get(i));
. 你必须将Long转换为整数