byte-buddy - 原始拳击堆栈操作
问题描述
PrimitiveBoxingDelegate 和 PrimitiveUnboxingDelegate 的实现似乎有区别。
基本上我想在堆栈上装箱一个原始值,所以它可以作为引用返回(即方法返回对象)
PrimitiveUnboxingDelegate.forPrimitive() 为我提供了 StackManipulation 但不幸的是 PrimitiveBoxingDelegate.forPrimitive() 没有。
有没有一种简单的方法来创建拳击 StackManipulation?
解决方案
你可以,你只需要指定值应该被装箱到什么是取消装箱的隐含类型:
StackManipulation sm = PrimitiveBoxingDelegate
.forPrimitive(...)
.assignBoxedTo(..., Assigner.DEFAULT, Assigner.Typing.STATIC);
您可以将 aint
转换为例如 aObject
或 a Number
。但是,您可以创建非法组合以及有时为字节好友自身目的所必需的组合。