我对java非常陌生。我想出了一些我真的想不出来的事情。我知道Double是一个包装类,您可以在该类的对象中包装一个double值。所以像这样的代码会很好
double pi = 3.14;
Double tempVariable = new Double(pi);因此,对我来说,既然我可以将一个双到一个双包装,那么将一个Double[]包装到一个double[]就同样容易了,这是完全合乎逻辑的。但事实并非如此。我尝试了我所能想到的一切(语法修改--创建一个包含上述double[]的类型对象,然后转换为Double[],像处理数组一样处理Double对象),但这些都没有奏效。
我正在使用j2me。
你们有什么建议吗?
@MightyPork :这是我做的第一件事。我认为,尝试这样做的代码如下:
public Double[] modelWeights = new Double[9];
modelweights = {-1.31,1.39,-0.36,1.55,1.55,-2.03,2.25,2.27,-0.72};但这行不通。我不知道为什么。
@Abimaran::我昨天看到了ArrayUtils,这将是一个很好的解决方案,但我正在使用j2me,并且没有在j2me中实现诸如List或HashSet (是ArrayUtils所必需的)类。我是不是遗漏了什么?
编辑::阿比马兰·库加撒森链接的帖子确实有其他答案,与fge的答案相当接近。谢谢大家的评论。
发布于 2015-01-21 12:14:00
欢迎来到Java的历史包袱之一数组。
所发生的情况类似于这样一个事实,即您有基本类型double及其“类等效”Double,而且您可以无缝地使用另一个类型,因为(因为Java 5)在本例中编译器会对您进行装箱/取消装箱。
但是对于数组,它不会这么做;所以Double[]不是double[]的“包装类”。
如果你有一个double[]数组,你想要“变成”一个Double[],你别无选择,只能复制你自己.例如:
final double[] primitiveArray = ...;
final int len = primitiveArray.length;
final Double[] boxedArray = new Double[len];
for (int index = 0; index < len; index++)
boxedArray[index] = Double.valueOf(primitiveArray[index]);https://stackoverflow.com/questions/28066551
复制相似问题