autoboxing相关内容

自动装箱和原始类型以匹配方法签名

在版本 1.5 中,Java引入了自动装箱的概念。 public interface SomeInterface { public void test(Integer val); } 公共类主要实现SomeInterface { / *方法签名变得不同,编译器要求覆盖 未实现的方法* / public void test(int t){ } } ..
发布时间:2018-12-24 13:22:48 Java开发

为什么Integer和int可以互换使用?

我很困惑为什么Integer和int可以在Java中互换使用,即使一个是基本类型而另一个是对象? 例如: 整数b = 42; int a = b; 或 int d = 12; 整数c = d; 解决方案 发表文章的前几句话描述得很漂亮好吧: 您不能将int(或其他原始值)放入集合中。集合只能保存对象引用,因此必须将原始 ..
发布时间:2018-12-20 21:36:21 Java开发

Userland自动装箱?

是否可以为自己的类实现自动装箱? 为了说明我的例子,我可能想写这个: Foo foo =“lolcat”; 这就是Java会做的事情(根据我自己的定义,在某处,不知何故),在引擎盖: Foo foo = new Foo(); foo.setLolcat(“lolcat”); 那么,这可能是某种方式,还是仅仅是JVM功能? 解决方 ..
发布时间:2018-12-17 11:31:45 Java开发

在Java中,如果返回类型分别是基元及其包装类,是否可以重写方法?

在使用Java中重写和重写方法的想法时,我注意到这些方法的返回类型有一些灵活性。 这是一个一点理论: “派生类中重写方法的返回类型可以是相同的,或者是基类中重写方法的返回类型的子类。这种重写方法的返回类型是称为协变返回类型。“ 以下示例假设B扩展A。 A中的方法: public Object some_method(){....} B中的方法: public Inte ..
发布时间:2018-12-17 10:01:50 Java开发

拆箱问题

我有一个扩展LinkedList类的类。 这里是代码的摘录: class SortedList extends LinkedList { int intMethod(Integer integerObject){ return integerObject; } } 预计会返回自动取消装箱的int值。但由于某种原因,编译器抛 ..
发布时间:2018-12-12 19:55:16 Java开发

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

我想将原语转换为字符串,我尝试了: myInt.toString(); 此操作失败并显示错误: int无法解除引用 现在,我得到的原语不是引用类型(即不是Object)因此不能有方法。然而,Java 5引入了自动装箱和拆箱(一个C#......我在C#中从未喜欢过,但这不是重点)。因此,使用自动装箱,我希望上面的内容将myInt转换为Intege ..
发布时间:2018-12-10 23:41:08 Java开发

覆盖和返回类型兼容性

以下编译没有任何问题 boolean flag = true; 布尔flagObj = flag; 现在成像以下场景 interface ITest { Boolean getStatus(); } 类TestImpl实现ITest { public boolean getStatus(){//编译错误:返回类型不兼容 返回真正; } ..
发布时间:2018-12-07 19:56:31 Java开发

包装类 - 为什么整数文字为Long而失败但为更小的东西工作

试图理解自动拳击,我做的除了一件事: 短s = 250; 长l = 250; Long l 的分配失败。我希望这是因为你不能加宽那个盒子(即它试图将 int 值 250 加宽到 long 然后选中它不能执行的操作。) 但是,分配给短s 有效。怎么回事呢?我的假设是它还在做拳击和某种转换。但如果知道 250 适合短的情况,为什么它不知道 250 将适合长? ..
发布时间:2018-12-07 13:19:45 Java开发

哪个更好:让Java进行自动装箱或使用valueOf()

我只是想知道让java autobox说一个整数有什么区别: 整数myInteger = 3; //这将调用Integer.valueOf() 或将代码设为 整数myInteger = Integer.valueOf(3); 这有什么微观优化吗?我知道第二个更明确,但它也更不必要打字,除此之外还有什么不同吗?。 解决方案 无论如何它们在内部是 ..
发布时间:2018-12-07 12:23:33 Java开发

使用基元及其包装器重载的方法

我正在尝试制定以下方案中使用的规则。请解释为什么我得到2个不同的输出。 场景1输出:我是一个对象。 class Test { public static void main(String [] args){ test t = new Test (); byte b_var = 10; t.do_the_test(b_var); } public void ..
发布时间:2018-12-07 11:56:01 Java开发

说一个类型是“盒装”是什么意思?

我听说过某些语言中的类型被称为“盒装”。 在Java中,我听说过“autoboxing”。这是什么?它是否有类型的包装类?如果我使用盒装或非盒装类型,我的代码会如何变化? 解决方案 某些数据类型被认为是“原始的”,意思是它们不像对象那样对待,也没有对象的属性。 在大多数平台上,整数和字符是原始类型的例子但可以盒装。 拳击意味着将它们包裹在一个物体中,这样它们就具有一个物体 ..
发布时间:2018-12-05 20:22:57 Java开发

自动装箱的性能影响

通常,编译器会生成执行装箱和拆箱的代码。但是如果不需要盒装值,编译器会是什么? (Oracle标准)编译器是否足够智能以优化它? 看看这个方法: public static void requireInRange(int index,Object [] array){ if(index = array.length) throw new IndexOut ..
发布时间:2018-12-05 11:03:09 Java开发

Java自动装箱规则

我是一名java新手,并且对以下示例感到困惑。是否可以认为“==”符号将比较整数和“autoboxed” Integers之间的值,并比较整数之间的参考地址? 那么双打和0/0怎么样? import edu.princeton.cs.introcs。*; 公共类Autoboxing { public static void cmp(Integer first,Intege ..
发布时间:2018-12-05 10:50:24 Java开发

autoboxing是否调用valueOf()?

我正在尝试确定以下陈述是否保证为真: ((Boolean)true)= = Boolean.TRUE ((Boolean)true)== Boolean.valueOf(true) ((Integer)1)== Integer.valueOf(1) 我一直认为自动装箱相当于在相应类型上调用 valueOf() 。我见过的每一个讨论 主题似乎 Oracle的自动装箱教程事实上 ..
发布时间:2018-12-05 10:39:03 Java开发

在为对象分配int时,Java是否会自动装箱?

这是自动装箱吗? 对象ob = 8; 上面的代码首先将int literal 8包装在Integer中,然后将其引用分配给变量ob ?因为java语言规范在这种情况下什么都没有。 解决方案 上面的代码是否会首先包装int literal 8在一个Integer中然后赋予它对变量ob的引用? 是的。 (或者更确切地说,它会将 int 值装入 ..
发布时间:2018-12-04 13:12:34 Java开发

Autoboxing:所以我可以写:Integer i = 0;而不是:Integer i = new Integer(0);

Autoboxing似乎归结为我可以写的事实: 整数i = 0; 而不是: 整数i = new Integer(0); 因此,编译器可以自动将基元转换为Object。 这是个主意吗?为什么这很重要? 解决方案 你有点简化它。 使用集合时,自动装箱也会发挥作用。正如sun的java文档中所解释的那样: ..
发布时间:2018-12-04 12:48:52 Java开发

盒装基元和等价

所以今天我被问到这个问题。 整数a = 3; 整数b = 2; 整数c = 5; 整数d = a + b; System.out.println(c == d); 该程序将打印出来的内容是什么?它返回true。我回答它总会打印出来,因为我理解自动(和自动联合)拳击。我的印象是,分配Integer a = 3将创建一个新的Integer(3),这样= =将评估引用而 ..
发布时间:2018-12-04 12:46:29 Java开发

为什么Java中的自动装箱允许我为布尔值提供3个可能的值?

参考: http://java.sun。 com / j2se / 1.5.0 / docs / guide / language / autoboxing.html “如果您的程序试图自动启动null,它将抛出NullPointerException。“ 如果尝试将null赋给布尔值,javac会给你一个编译时错误。说得通。尽管如此,将null赋值给布尔值也是如此。我猜也是有道理的。 ..
发布时间:2018-12-04 12:39:12 Java开发