autoboxing相关内容

为什么没有更新该对象

我编写了这段代码,我想知道为什么引用的对象的值没有更改 Java中的所有调用都是按值调用的。但当调用引用同一对象时,为什么不更新该对象 class Main { public static void main(String[] args) { Integer n = 3; triple(n); System.out.println("Hello world! ..
发布时间:2022-04-18 10:23:28 Java开发

为什么这个数字类赋值会起作用(Java)?

我寻找了此副本,但找不到与其足够相似的副本。 Java中不能实例化抽象类,Number是抽象的,为什么要编译此行: Number num = 3; 如果它是Integer Num,它将被自动装箱,但是自动装箱在某种程度上也适用于Numbers吗,尽管它是抽象的?还是发生了其他事情? 推荐答案 自动装箱不适用于Number。您完全正确,Number类是抽象的,不能实例化。 ..
发布时间:2022-04-03 13:59:57 Java开发

java: boolean instanceOf 布尔值?

我有点困惑:我有一个函数,它接受一个对象作为参数.但是,如果我只传递一个原语,甚至将布尔原语识别为布尔对象,编译器不会抱怨.为什么呢? public String test(对象值){if (! (value instanceof Boolean) ) 返回“无效";if (((Boolean) value).booleanValue() == true ) 返回“是";if (((Boolea ..
发布时间:2022-01-19 17:30:17 Java开发

在 Java 7 中使用方法重载时,为什么自动装箱不推翻可变参数?

我们的 Java 项目中有一个 LogManager 类,如下所示: 公共类 LogManager {公共无效日志(级别日志级别,对象...参数){//做一点事}public void log(Level logLevel, int value, Object... args) {//做其他事情}} 在Debianeveryting下使用OpenJDK 6编译项目时工作正常.当使用 OpenJ ..

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

我今天注意到自动装箱有时会导致方法重载解决方案的歧义.最简单的例子似乎是这样的: 公共类测试{静态无效 f(对象 a,布尔 b){}静态无效 f(对象 a,对象 b){}静态无效 m(int a, boolean b) { f(a,b);}} 编译时出现如下错误: Test.java:5: 对 f 的引用不明确,两种方法测试和方法中的 f(java.lang.Object,boolean)测 ..
发布时间:2022-01-17 00:04:26 Java开发

为什么 int num = Integer.getInteger("123") 会抛出 NullPointerException?

以下代码抛出NullPointerException: int num = Integer.getInteger("123"); 我的编译器是否在 null 上调用 getInteger,因为它是静态的?这没有任何意义! 发生了什么事? 解决方案 大局 这里有两个问题: Integer getInteger(String) 没有做你认为它做的事情 在这种情况下返回 ..
发布时间:2022-01-14 14:09:52 Java开发

Java 允许将字节分配给 java.lang.Short 但不能分配给 java.lang.Integer

最终字节 b = 12;短 s = b;整数 i = b; 对于 Short,程序编译正常,但对于 Integer 编译失败,并显示“不兼容的类型"消息. 我很难理解这种行为.对于这种特定情况,我找不到任何东西.. 解决方案 我试图用更广泛的赋值上下文来复制这个: 最终字节 b = 12;字节 b2 = b;字符 c = b;//只有当 b 不是 final 时才会出错字符 c2 ..
发布时间:2022-01-13 00:09:08 Java开发

NullPointerException 通过 Java 三元运算符的自动装箱行为

前几天我遇到了一个非常奇怪的 NullPointerException,这是由三元运算符中的意外类型转换引起的.鉴于这个(无用的示例)功能: Integer getNumber() {返回空;} 我期望编译后以下两个代码段完全相同: 整数;如果(条件){number = getNumber();} 别的 {数字 = 0;} 对比 整数=(条件)?getNumber() : 0; . ..
发布时间:2022-01-05 20:36:01 Java开发

数字文字的自动装箱:包装器初始化与传递方法参数不一致

请考虑两种情况: //1短 s = 10;//显然编译//2短线(10);//错误 - int 不适用//在哪里:静态无效 takeShort(Short s) {} 我假设情况 1 被编译器更改为: short _temp_s = 10;Short s = Short.valueOf(_temp_s); 你能解释一下编译器在情况 2 中试图做什么,所以它不能编译吗?如果它不像情况 1 那 ..
发布时间:2021-12-31 22:47:01 Java开发

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

这个问题是关于“为什么自动装箱使 Java 中的一些调用变得模棱两可?" 但是仔细阅读答案,有很多关于转换的参考资料,我不确定我是否完全理解其中的区别. 谁能提供一个简单的解释? 解决方案 装箱是将原始类型转换为引用类型,而取消装箱则相反.强制转换是当您希望将一种类型视为另一种类型时,在原始类型和引用类型之间,这意味着隐式或显式装箱操作.是否需要显式是语言特性. ..
发布时间:2021-12-31 21:36:55 Java开发

说一个类型是“装箱的"是什么意思?

我听说类型在某些语言中被称为“盒装". 在 Java 中,我听说过“自动装箱".这是什么?它是否具有类型的包装类?如果我使用装箱或未装箱类型,我的代码将如何更改? 解决方案 某些数据类型被认为是“原始的",这意味着它们不被视为对象并且不具有对象的属性. 在大多数平台上,整数和字符是原始类型但可以装箱的示例. 装箱意味着将它们包装在一个对象中,以便它们具有对象的行为. ..
发布时间:2021-12-25 13:32:14 Java开发

Java 转换 Arraylist浮[]

我该怎么做? 我有一个带有浮点元素的数组列表.(Arraylist ) (float[]) Floats_arraylist.toArray() 它不起作用. 无法从 Object[] 转换为 float[] 解决方案 自己循环. ListfloatList = getItSomehow();float[] floatArray = new float[floatList ..
发布时间:2021-12-21 10:45:21 Java开发

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

我有一个这样的方法: public static boolean isMemberOf(T item, T[] set){对于(T t :设置){如果(t.equals(项目)){返回真;}}返回假;} 现在我尝试使用 char 为 T 调用这个方法: char ch = 'a';char[] chars = new char[] { 'a', 'b', 'c' };布尔成员 = isMem ..
发布时间:2021-12-15 09:36:26 Java开发

Java 中的自动装箱/拆箱是如何工作的?

自 JDK 5.0 起,Java 中引入了自动装箱/拆箱.这个技巧很简单而且很有帮助,但是当我开始测试包装类和原始类型之间的不同转换时,我真的很困惑自动装箱的概念在 Java 中是如何工作的.例如: 拳击 int intValue = 0;整数 intObject = intValue;字节字节值 = 0;intObject = byteValue;//==>错误 尝试不同的情况(sho ..
发布时间:2021-11-25 15:20:48 Java开发

返回 null 作为三元运算符允许的 int 而不是 if 语句

让我们看看以下片段中的简单 Java 代码: public class Main {私人 int temp() {返回真?空:0;//没有编译器错误 - 编译器允许返回值为 null//在返回 int 的方法签名中.}私有 int 相同(){如果是真的) {返回空;//与 if 一样,这是不可能的,//并导致编译时错误 - 不兼容的类型.} 别的 {返回0;}}公共静态无效主(字符串 [] ar ..

为什么我们在 Java 中使用自动装箱和拆箱?

Autoboxing 是 Java 编译器进行的自动转换在原始类型和它们对应的对象包装器之间类.例如,将 int 转换为 Integer,将 double 转换为双等.如果转换方向相反,这是称为拆箱. 那么我们为什么需要它,为什么我们在 Java 中使用自动装箱和拆箱? 解决方案 需要一些上下文才能完全理解这背后的主要原因. 基元与类 Java 中的原始变量包含值(整数、 ..
发布时间:2021-11-25 14:10:22 Java开发

为什么人们仍然在 Java 中使用原始类型?

从 Java 5 开始,我们已经对原始类型进行装箱/拆箱,以便将 int 包装为 java.lang.Integer,等等. 我最近看到很多使用 int 而不是 java.lang.Integer,虽然使用后者更方便,因为它有一些帮助方法可以转换为 long 值等. 为什么有些仍然在 Java 中使用原始类型?有什么切实的好处吗? 解决方案 在 Joshua Bloch 的 E ..
发布时间:2021-11-25 13:50:20 Java开发