问题标签 [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.
java - 为什么 Java 自动装箱不扩展到自动装箱类型的方法的方法调用?
我想将原语转换为字符串,我尝试过:
这失败并出现错误:
现在,我知道原语不是引用类型(即不是对象),因此不能有方法。然而,Java 5 引入了自动装箱和拆箱(就像 C# 一样……我在 C# 中从来不喜欢它,但这无关紧要)。因此,通过自动装箱,我希望上面将 myInt 转换为 Integer ,然后对其调用 toString() 。
此外,我相信 C# 允许这样的调用,除非我记错了。这只是 Java 自动装箱/拆箱规范的一个不幸缺点,还是有充分的理由?
java - 用户态自动装箱?
是否可以为您自己的类实现自动装箱?
为了说明我的例子,这就是我可能想要写的:
这就是 Java 会做的事情(根据我自己的定义,在某个地方,不知何故),在引擎盖下:
那么,这是可能的,还是只是 JVM 功能?
java - 编译器为自动装箱生成什么代码?
当 Java 编译器将原语自动装箱到包装类时,它会在幕后生成什么代码?我想它会调用:
- 包装器上的 valueOf() 方法
- 包装器的构造函数
- 还有什么魔法?
java - 为什么自动装箱会使 Java 中的某些调用模棱两可?
我今天注意到自动装箱有时会导致方法重载解析的歧义。最简单的例子似乎是这样的:
编译时,它会导致以下错误:
此错误的修复很简单:只需使用显式自动装箱:
它按预期正确调用了第一个重载。
那么为什么重载解析失败了呢?为什么编译器不自动装箱第一个参数,并正常接受第二个参数?为什么我必须明确要求自动装箱?
java - Java:原始数据类型数组不自动装箱
我有这样的方法:
现在我尝试使用char
for调用此方法T
:
这行不通。我希望char
andchar[]
自动装箱到Character
and Character[]
,但这似乎没有发生。
有什么见解吗?
java - 自动装箱:所以我可以写:Integer i = 0; 而不是:整数 i = new Integer(0);
自动装箱似乎归结为我可以写的事实:
代替:
因此,编译器可以自动将原语转换为对象。
是这个主意吗?为什么这很重要?
java - 整数值比较
我是一个新手 Java 编码器,我刚刚读取了一个整数类的变量,可以在 API 中以三种不同的方式描述。我有以下代码:
这是在一个循环内,只是输出out_table
。
我的目标是弄清楚如何查看 integer 中的值count > 0
。
我意识到这count.compare(0)
是正确的方法吗?或者是count.equals(0)
吗?
我知道count == 0
是不正确的。这是正确的吗?是否有一个值比较运算符count=0
?
java - 如何将 int[] 转换为 List在 Java 中?
我如何转换int[]
成List<Integer>
Java?
当然,除了逐项循环执行之外,我对任何其他答案都感兴趣。但是,如果没有其他答案,我会选择一个作为最好的答案,以表明此功能不是 Java 的一部分。