问题标签 [byte-buddy]

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 投票
1 回答
1469 浏览

java - Byte Buddy 中的拦截器类可见性

即使我提供了实际实例,Byte Buddy 似乎也只欣赏公共类作为拦截器实现;我经常发现自己想做这样的事情:

然而,这会导致如下异常:

可见性强制执行背后有什么原因吗?

编辑:我仍然遇到麻烦;我得到了一个不同的例外,这是我的代码:

现在的例外是:

编辑2:

如果我将类加载策略更改为 INJECTION 它工作正常

0 投票
1 回答
2669 浏览

java - Byte Buddy 可以在运行时创建字段和方法注解吗?

我想实现这个 3rd-party 注释以将我的类的字段/属性映射到我的数据库表列。我可以在编译时轻松实现注释(如下面的示例代码所示),但我找不到在运行时执行此操作的方法。(我在运行时使用反射加载库。)

我的问题是如何在运行时加载库时实现相同的映射注释?Byte Buddy 可以为 Android 处理这个吗?

///////////////////////////////////////// ///

0 投票
1 回答
2630 浏览

java - 使用 Byte Buddy 拦截默认构造函数

我正在尝试使用 Byte Buddy 拦截构造函数调用,这是我的示例代码:

这会产生以下异常:

我看到了这个相关的问题,但我确实得到了一个碰撞异常(好像构造函数被定义了两次)。

0 投票
1 回答
128 浏览

java - 从 Byte Buddy 0.7.7 迁移到 1.0.2 时遇到问题

我在测试套件中遇到了一些问题,从 Byte Buddy 0.7.7 迁移到 1.0.2

这是一个简化的示例:

代码MyClass

Byte Buddy 0.7.7 没有报告任何错误,但是在 1.0.2 中我得到了类似Cannot resolve type description for test.MyClass$auxiliary$dUGbkato.

完整日志(来自 AgentBuilder.Listener): http://pastebin.com/ytsQR5bi

请注意,该方法被拦截。

然而,在我的一些测试中,我得到了两倍的拦截量,因为它拦截call了辅助类的方法。

0 投票
1 回答
525 浏览

java - 使用字节伙伴从自定义注释中检索参数

我需要从自定义注释中检索参数并将它们传递给拦截器。例如,

我想在以下拦截器中使用值 id 和 enumpar

那么如何扩展基类以包含注释参数呢?我现在有以下

0 投票
1 回答
878 浏览

java - ByteBuddy - 修改加载类的默认值

我正在尝试更改已加载类的方法的返回值。

从 ByteBuddy 的文档(http://bytebuddy.net/#/tutorial)来看,这似乎可以使用 Java 代理,只要我不添加任何字段/方法。

我的代码如下:

但我得到以下异常:

问题是,我没有添加任何方法。Byte Buddy 在上面的代码中在哪里添加了字段或方法?

编辑:

0 投票
1 回答
3054 浏览

java - 如何向 ByteBuddy 中的类添加字段并在方法拦截器中设置/获取该值

我正在使用 byte-buddy 在 Ignite 之上构建一个 ORM,我们需要向一个类添加一个字段,然后在方法拦截器中访问它。

所以这是一个例子,我在一个类中添加一个字段

而拦截器是这样的

那么如何将新字段的值输入拦截器,以便更改它的值?(字符串值)

提前致谢

0 投票
1 回答
60 浏览

android - Byte Buddy 之后会删除 Android 存储中生成的类文件吗?

我注意到 Byte Buddy 在运行时创建的类被写入 data/data 文件夹,但在应用程序关闭后,这些生成的类仍然存在。我们是否必须自己编写代码来删除这些文件,或者 Byte Buddy 有一些 api 来做到这一点?

0 投票
1 回答
194 浏览

java - ByteBuddy Pipe.Binder 使用 java 8 函数失败

关于 ByteBuddy 使用带有方法委托的注释的文档Pipe指出,这java.util.function.Function是一种适合与Pipe.

@Pipe 注解没有在 MethodDelegation 中预注册,因为 Java 类库在定义 Function 类型的 Java 8 之前没有提供合适的接口类型。

但是,当我实际使用它时(在 java 8 中),抛出了一个异常,这似乎是由Function.

这是绑定代码:

看来问题可能在于Pipe.Binder.install寻找所有非静态的方法。也许它也应该排除默认方法。

此外,我尝试了这个com.google.common.base.Function并得到了类似的失败,因为它声明了equalsObject. Object因此,在尝试识别要通过的单一方法时,也许也应该排除存在的任何方法。

0 投票
1 回答
216 浏览

android - 当前 Dx 的 Byte-Buddy-Android

我目前正在使用byte-buddybyte-buddy-android和 Android 的dx_1.7库。dx_1.7.jar过时(2012 年),我想知道是否有人已经构建了一个新的byte-buddy-android.jar与由 more 提供的当前dx.jar(不是dx_1.7.jar)一起使用当前的 Android SDK。我将如何实现这样的目标?