问题标签 [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 投票
8 回答
6900 浏览

java - 为什么 Java 自动装箱不扩展到自动装箱类型的方法的方法调用?

我想将原语转换为字符串,我尝试过:

这失败并出现错误:

现在,我知道原语不是引用类型(即不是对象),因此不能有方法。然而,Java 5 引入了自动装箱和拆箱(就像 C# 一样……我在 C# 中从来不喜欢它,但这无关紧要)。因此,通过自动装箱,我希望上面将 myInt 转换为 Integer ,然后对其调用 toString() 。

此外,我相信 C# 允许这样的调用,除非我记错了。这只是 Java 自动装箱/拆箱规范的一个不幸缺点,还是有充分的理由?

0 投票
3 回答
4530 浏览

java - 这真的是扩大与自动装箱吗?

我在另一个问题的回答中看到了这一点,参考了 Java 规范的缺点:

还有更多的缺点,这是一个微妙的话题。看看这个

这里将打印“long”(我自己没有检查过),因为编译器选择加宽而不是自动装箱。使用自动装箱时要小心,或者根本不要使用它!

我们确定这实际上是扩大而不是自动装箱的一个例子,还是完全是别的东西?

在我最初的扫描中,我同意这样一种说法,即输出将是“长”的,i因为它被声明为一个原语而不是一个对象。但是,如果你改变了

输出将打印“整数”

这里到底发生了什么?我对java的编译器/字节码解释器一无所知......

0 投票
1 回答
854 浏览

java - 用户态自动装箱?

是否可以为您自己的类实现自动装箱?

为了说明我的例子,这就是我可能想要写的:

这就是 Java 会做的事情(根据我自己的定义,在某个地方,不知何故),在引擎盖下:

那么,这是可能的,还是只是 JVM 功能?

0 投票
4 回答
4030 浏览

java - 编译器为自动装箱生成什么代码?

当 Java 编译器将原语自动装箱到包装类时,它会在幕后生成什么代码?我想它会调用:

  • 包装器上的 valueOf() 方法
  • 包装器的构造函数
  • 还有什么魔法?
0 投票
6 回答
6424 浏览

java - 为什么自动装箱会使 Java 中的某些调用模棱两可?

我今天注意到自动装箱有时会导致方法重载解析的歧义。最简单的例子似乎是这样的:

编译时,它会导致以下错误:

此错误的修复很简单:只需使用显式自动装箱:

它按预期正确调用了第一个重载。

那么为什么重载解析失败了呢?为什么编译器不自动装箱第一个参数,并正常接受第二个参数?为什么我必须明确要求自动装箱?

0 投票
7 回答
33206 浏览

java - Java:自动装箱和强制转换有什么区别?

这个问题是关于“为什么自动装箱在 Java 中使某些调用模棱两可?”

但是通读答案,有许多关于铸造的参考资料,我不确定我是否完全理解其中的区别。

有人可以提供一个简单的解释吗?

0 投票
10 回答
21550 浏览

java - Java:原始数据类型数组不自动装箱

我有这样的方法:

现在我尝试使用charfor调用此方法T

这行不通。我希望charandchar[]自动装箱到Characterand Character[],但这似乎没有发生。

有什么见解吗?

0 投票
9 回答
16290 浏览

java - 自动装箱:所以我可以写:Integer i = 0; 而不是:整数 i = new Integer(0);

自动装箱似乎归结为我可以写的事实:

代替:

因此,编译器可以自动将原语转换为对象。

是这个主意吗?为什么这很重要?

0 投票
7 回答
200765 浏览

java - 整数值比较

我是一个新手 Java 编码器,我刚刚读取了一个整数类的变量,可以在 API 中以三种不同的方式描述。我有以下代码:

这是在一个循环内,只是输出out_table
我的目标是弄清楚如何查看 integer 中的值count > 0

我意识到这count.compare(0)是正确的方法吗?或者是count.equals(0)吗?

我知道count == 0是不正确的。这是正确的吗?是否有一个值比较运算符count=0

0 投票
20 回答
585753 浏览

java - 如何将 int[] 转换为 List在 Java 中?

我如何转换int[]List<Integer>Java?

当然,除了逐项循环执行之外,我对任何其他答案都感兴趣。但是,如果没有其他答案,我会选择一个作为最好的答案,以表明此功能不是 Java 的一部分。