问题标签 [unboxing]

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 投票
4 回答
259 浏览

java - 使用增强的 for 循环时数组是否被转换?

Java 5 或更高版本是否对数组应用某种形式的“装箱”?当以下代码像 Iterable 一样遍历数组时,我想到了这个问题。

0 投票
4 回答
1749 浏览

c# - 这些是装箱/拆箱示例吗

是 2 和 3 装箱/拆箱示例吗?

1)文档示例:

2:装箱/拆箱也一样吗?

3:装箱/拆箱也一样吗?

我假设在所有示例中技术上都发生了相同的情况。

  1. 在栈上创建一个值类型
  2. 在堆栈上创建一个引用,将值复制到堆中。
  3. 堆值被复制到引用。引用被删除。

所以我猜 2 和 3 是装箱/拆箱的例子?

0 投票
2 回答
868 浏览

c# - 在代码中查找装箱的工具

背景:我正在为 xbox 开发并处于优化阶段。我需要减少对象分配。一个开始的地方是找出(取消)装箱发生的位置。

我对 IL 很陌生(因为我从来没有看过任何东西!)并且希望避免通过反汇编程序运行 DLL,寻找 (un)box 命令然后尝试找出它与哪一行代码相关.

问题:是否有任何工具可以为我报告这种事情(发生(取消)装箱)?

编辑:在下面提出了自己的问题,因为它与这个问题完全不同。

将 GC 堆转储与发生对象创建的代码行联系起来的方式有很多很多的奖励积分!!

0 投票
2 回答
3858 浏览

c# - 盒装值类型比较

我在这里想要实现的是盒装原始类型的直接值比较。

我明白“为什么”。我只是没有看到“如何”。

这些类型在运行时之前是未知的,它们可以是来自数据源的任何原始类型。这包括字符串、日期时间、布尔值等。我已经走了一条丑陋的路线,编写了一个可以解决两种类型的扩展方法,然后在进行“==”比较之前进行强制转换:(为了完整起见,我包括了每个原始类型,加上我感兴趣的那些)

结果方法结果是 300 多行,这很好(但很可怕),但现在我需要做的不仅仅是“==”。我需要 >、<、<=、>=、!=。

反射中有什么可以用于盒装值类型比较的吗?

有什么吗?

0 投票
1 回答
493 浏览

java - 模拟接口为空

我正在尝试使用 JMockit 模拟 DAO:

使用这个测试类:

当在 Expectations 块中使用 dao 对象时,会抛出 NPE。我尝试将 dao 的声明移动到使用 @Mocked 注释的成员变量,但同样的事情发生了。我也尝试过使用 MyDao 的具体实现,并且发生了同样的事情。

0 投票
2 回答
625 浏览

java - 通过传入单个元素原始数组来避免装箱

我正在使用一个将 Object 类型作为其输入的接口。这对我来说很不幸,因为我有时需要通过接口传递原始数据。这当然迫使我装箱。

分析表明该区域是代码中的热点。因此,我正在探索使这个领域更快的替代方案。

我今天对此的一个想法是预先分配一个静态原始数组,并将原始值存储在其中,然后传递数组(然后在接口的实现中,从数组中获取双精度值。

我写了一些代码来测试这个。对于相当高的值(1000 万),我看到数组方法明显更快。随着我增加测试的迭代次数,两者会收敛。

我想知道以前是否有人考虑过这种方法,以及是否有任何关于如何很好地进行基准测试的建议。

示例代码:

对...

谢谢!RB

0 投票
4 回答
1696 浏览

java - 在性能方面,隐式(自动)拆箱或显式拆箱哪个更好?

把它放在代码中 - 哪个具有更好的性能(如果有区别的话)?

鉴于这种:

哪个更快?

或这个:

0 投票
2 回答
264 浏览

java - 如何获知从哪个 ip 成功登录?

我使用 Spring Security 3。我有以下方法:

我有拆箱地址变量的脏代码吗?我可以写得简短或正确吗?

0 投票
0 回答
78 浏览

controls - 转换 Html 控件 (.NET 2.0)

我使用下面的代码来投射控件:

问题是,即使它编译它也不起作用 - 抛出一个 HttpException。我认为我没有正确地投射控件?

我正在使用 Visual Studio 2008 和 .NET Framework 2.0

谢谢。

0 投票
3 回答
1159 浏览

c# - 直接将装箱的 int 拆箱为短

我已经制定了一种转换方法来处理 procs 返回的数据库值。它看起来像这样:

问题是当数据库返回一个整数时,value变量将包含一个int,当T是一个时short,我得到一个InvalidCastException

我该如何改进这种方法来处理这种情况?我希望该方法的用户不必担心这种问题,而不必双重施法。这可能吗?