原始拳击堆栈操作

Primitve Boxing StackManipulation

PrimitiveBoxingDelegate 和 PrimitiveUnboxingDelegate 的实现似乎有所不同。

基本上我想在堆栈上装箱一个原始值,因此它可以作为参考返回(即方法 returns 对象)

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

是否有创建拳击 StackManipulation 的简单方法?

你可以,你只需要指定值应该被装箱的类型到拆箱的隐式类型:

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

您可以将 int 转换为 ObjectNumber。但是,您可以创建非法组合,有时为了 Byte Buddy 自己的目的也需要这样做。