问题标签 [autoboxing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
20224 浏览

java - 自动装箱的性能影响

通常编译器会生成代码来执行装箱和拆箱。但是,如果不需要装箱的值,编译器会做什么?(Oracle 标准)编译器是否足够智能以优化它?

看看这个方法:

唯一相关的信息是array.length,因此例如将数组的每个值装箱是没有用的。就像在这段代码中:

编译器实际上会插入代码来装箱数组的每个值吗?

0 投票
4 回答
23163 浏览

java - java: boolean instanceOf Boolean?

I'm a bit confused: I have a function, that takes an Object as argument. But the compiler does not complain if I just pass a primitive and even recognizes a boolean primitive as Boolean Object. Why is that so?

0 投票
4 回答
1695 浏览

java - 自动装箱/加宽在 Short a=3 中发生,但在 Float a=3 中没有;

我了解以下代码不起作用

因为它翻译为 Float a=Integer.valueOf(3)。我们将在 LHS 上有一个 Float 引用,在 RHS 上有一个 Integer 对象,这是不兼容的。但 :

1.

这是可行的,虽然在这里,我们将在 LHS 上有一个 Short 引用,在 RHS 上有一个 Integer 对象。

2.

Float a=(Float) 3

如果我们没有对 3 进行类型转换,它将被翻译为 Integer.valueOf(3)。现在,它会被翻译成 Float.valueOf(3) 吗?

0 投票
4 回答
21803 浏览

java - 布尔值、条件运算符和自动装箱

为什么这会抛出NullPointerException

虽然这不是

?

解决方案是通过替换为避免被拆箱的方式 - 这falseBoolean.FALSE不可能nullboolean。但这不是问题。问题是为什么?JLS 中是否有任何参考资料证实了这种行为,尤其是第二种情况?

0 投票
1 回答
86 浏览

java - 为什么我在这段代码中得到空指针异常?

输出: Test.go(Test.java:12) at Test.main(Test.java:8) 的线程“main”java.lang.NullPointerException 中的异常

0 投票
2 回答
832 浏览

java - 您在哪里放置括号以简洁地将强制转换的对象转换为原始类型而无需自动拆箱?

使用自动拆箱,此语句将自动起作用:

但是,如果我想在一行中明确地从 an 转换为 an,我必须将括号放在哪里Integerint

0 投票
1 回答
3106 浏览

java - Java自动装箱/拆箱怪异

可能的重复项:
布尔值、条件运算符和自动装箱
Java、Google 集合库;抽象迭代器的问题?

下面的代码产生一个 NPE:

要正确打印出“null”而不出现异常,需要以下代码:

在第一个示例中很明显,“test”正在被拆箱(转换为原生 int),但为什么呢?为什么更改三元运算符中的另一个表达式(如第二个示例)会修复它?谁能提供某种叙述,说明这两个示例中的内容是何时、什么以及为什么被装箱和拆箱?

0 投票
1 回答
1557 浏览

java - Rhino、typeof 和自动装箱混淆

在 SmartfoxServer(使用 Rhino)的服务器端扩展中,我有一段类似的 Javascript:

这导致了错误。发生了什么?因为 properties 是一个 Java Map,当一个数字被放入其中时,它会被自动装箱到一个java.lang.Double对象中。因此,在检索它并将其存储在 中时response["xpos"],结果不是一个常规的 Javascript 数字,而是一个JavaObject类型java.lang.Double。该JSON.stringify函数并不打算处理它并且它崩溃了。

我用这样的 hack 修复了它:

有没有更好的办法?

0 投票
12 回答
47375 浏览

java - 布尔值!= false

在 Java 中,你通常会这样说

if(someBool != false)

是相同的

if(someBool)

但是如果someBool不是类型boolean但是 Boolean,并且它的值是,null怎么办?

0 投票
1 回答
1196 浏览

java - Scala 自动装箱和 Java Map

我有一个 Java 方法需要一个类型的参数Map<Long, Foo>。我正在尝试在 Scala 2.8.1 中为该方法编写一个单元测试并传入一个文字Map[Long, Foo].

我的代码如下所示:

编译器给我以下错误:

我也试过了

并得到错误:

我该怎么做呢?