boxing

    5热度

    1回答

    盒装可空基本类型可投到枚举但盒装枚举类型不能转换可空类型。 同样, 盒装为空的枚举可以转换到基本类型,但盒装的基础类型不能转换可空枚举。 好吧,我知道“盒装可空字体”不是描述它的最好方式,但它是为了这个问题。我知道这是正在装箱的基础值类型。 我会用示例展示它。假设我有一个enum和int作为基础类型。 enum Sex { Male, Female } 案例一: int? i = 1; ob

    1热度

    2回答

    我读jls §5.1.7和它说,有9种拳术,第九一个是拳击From the null type to the null type 然后我读到的nullUnboxing Conversion抛出一个NullPointerException。好的,这很明显。 随后的null拳击为什么不抛出一个NullPointerException,什么是使用拳null价值?

    3热度

    4回答

    我有一个方法需要两个Doublesa和b(注意大写“D”)并计算差异。如果只有一个参数是null,结果应为999999,否则返回两个数字之间的差值。 以下(工作)代码在FindBugs中给我一个“可怕的”警告,我通常会尽量避免代码中出现高排名的警告。但是,我认为代码既简短又可读,而我认为的所有其他内容都使其不易读。恕我直言,使用==在这个的情况下是完全正确的。 public double foo(

    4热度

    3回答

    javac或JIT是否优化不必要的自动装箱?假设我们有这段代码。 for(int i=0; i<100000; i++) { f(i); } void f(Integer i) { System.out.println(i); } 这段代码如何得到优化?我猜f将内联,但不必要的拳击int(它不会被修改,永远不会是null)。我们假设该方法不是从任何其他代码片段调用的

    4热度

    2回答

    Java 8中是否有任何方式在原始流上使用Stream::collect(Collector)? 通常一个Stream<Integer>如实施例具有用于收集两种方法: <R,A> R collect(Collector<? super T,A,R> collector) <R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accu

    0热度

    1回答

    嗨可能我知道有什么问题,编译器给我 方法GOS(INT [])是模糊的类型主要 这里的代码 public class Main { public static void main(String[] args){ new Main().gos(1); } public void gos(int...ls){ System.out.prin

    25热度

    1回答

    这是我直到今天才注意到的东西。显然,当执行基于相等的操作时,大量使用的元组类(如Tuple<T>,Tuple<T1, T2>等)的.NET实现会导致对值类型的装箱惩罚。 这里是怎么类框架中的一种实现(通过ILSpy源): public class Tuple<T1, T2> : IStructuralEquatable { public T1 Item1 { get; private

    1热度

    5回答

    int i = 5; string str = i.ToString(); String str1 =(String)i.ToString(); 作为Int's为值类型和String的是参考类型 因此无论是拳击或开箱??? 编辑: 现在是第二个声明无论是拳击还是拆箱???

    0热度

    1回答

    由于Int32是一个结构,它意味着它是一个System.ValueType(它继承System.Object),当我将一个Integer传递给一个期望Object的函数时,为什么CLR盒子呢? CLR是否假设Object始终是引用类型? 这是一个有点混乱,认为值类型“是”的对象,但是当你要通过它“作为”对象,需要框它... 我是谁是想知道的唯一一个这个?

    8热度

    3回答

    在C#语言规范5.0版,在1.3节中,这样说: 一个接口类型可以具有作为其内容一个空引用,对实现该一个类类型的 实例的引用接口类型或 参考对实现该 接口类型 我没有问题与三分之二那些语句的值类型的装箱值。然而,最后一个让我困惑。接口类型如何保存实现该接口类型的值类型的装箱值?我认为值类型不能实现接口类型?或者是说盒装值实现了接口类型?如果是这种情况,盒装值如何实现接口类型? 我有一个麻烦理解这一切