首页 > 解决方案 > 原始拳击堆栈操作

问题描述

PrimitiveBoxingDelegate 和 PrimitiveUnboxingDelegate 的实现似乎有区别。

基本上我想在堆栈上装箱一个原始值,所以它可以作为引用返回(即方法返回对象)

PrimitiveUnboxingDelegate.forPrimitive() 为我提供了 StackManipulation 但不幸的是 PrimitiveBoxingDelegate.forPrimitive() 没有。

有没有一种简单的方法来创建拳击 StackManipulation?

标签: byte-buddy

解决方案


你可以,你只需要指定值应该被装箱到什么是取消装箱的隐含类型:

StackManipulation sm = PrimitiveBoxingDelegate
  .forPrimitive(...)
  .assignBoxedTo(..., Assigner.DEFAULT, Assigner.Typing.STATIC);

您可以将 aint转换为例如 aObject或 a Number。但是,您可以创建非法组合以及有时为字节好友自身目的所必需的组合。


推荐阅读