我是java的新手。我找到了一些我无法理解的东西。 我知道Double是一个包装类,你可以在一个对象中包含一个double值。所以看起来像这样的代码可以正常工作
double pi = 3.14;
Double tempVariable = new Double(pi);
所以对我来说似乎是完全合乎逻辑的,因为我可以将double包装成Double,将double []包装到Double []就好了。但事实并非如此。 我尝试了我能想到的一切(语法改变 - 创建一个包含所述double []类型的Object类型的对象,然后转换为Double [],处理Double对象就好像它是一个数组一样)但这些都没有用。< / p>
我正在使用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 Kugathasan ::我昨天看到了ArrayUtils,这将是一个很好的解决方案,但是我使用的是j2me,而像List或HashSet这样的类(在ArrayUtils中是必需的)并没有在j2me中实现。我错过了什么吗?
编辑::由Abimaran Kugathasan链接的帖子确实有其他答案非常接近fge的答案。谢谢大家的评论。答案 0 :(得分:2)
欢迎来到Java的历史包袱阵列之一。
类似于你有原始类型double
和他们的&#34;类等价&#34; Double
,并且你可以无缝地使用另一个是因为(在Java 5之后)在这种情况下编译器会为你装箱/取消装箱。
但它不会对数组这样做;所以Double[]
不是&#34;包装类&#34; double[]
。
如果你有一个double[]
数组,你想要&#34;转入&#34;一个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]);