- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试实例化一个没有空参数构造函数的类(而且它的直接父类也没有空参数构造函数)
Class<?> newClass = new ByteBuddy();
.subclass(BufferedImage.class)
...
.make()
.load(BufferedImage.class.getClassLoader())
.getLoaded();
BufferedImage bufferedImage = dynamicTypeBufferedImage.getConstructor().newInstance();
我想知道这是否可以使用 byte buddy。目前我收到一条错误消息,指出未找到代理类的 getConstructor()
这很有意义,因为空参数构造函数不存在。有没有一种方法可以定义空参数构造函数以使该实例化起作用?
我试过:
...
.constructor(any()).intercept(to(new Object() {
public void construct() throws Exception {
System.out.println("CALLING XTOR");
}
}).andThen(SuperMethodCall.INSTANCE)) // This makes the difference!
...
来自here并给了我图像类没有 super()
(这是 BufferedImage 的父类)的错误。
我也试过:
...
.defineConstructor(Visibility.PUBLIC)
.intercept(MethodCall
.invoke(superClass.getDeclaredConstructor())
.onSuper())
...
来自here
最后,我还尝试了 .subclass(type, ConstructorStrategy.Default.IMITATE_SUPER_CLASS);
模仿父类(super class)的方法,但这似乎没有添加空参数构造函数。
我想要的这个功能模仿了 cglib 使用增强器实例化其对象的方式。从我一直在阅读的内容中我知道字节伙伴应该让用户决定如何实例化。我想知道是否有一种简单的方法可以将默认实例化设置为空参数构造函数,因为我不关心在类中设置字段,而只想控制方法空间?
最佳答案
定义不以某种方式(直接或通过另一个构造函数)调用其 super 构造函数的 Java 构造函数是不合法的,因为它不能用字节代码表示,也不能在 Byte Buddy 中完成。
你可以做的是:
ConstructorStrategy.Default.NO_CONSTRUCTORS
一起定义构造函数。但请注意,Objenesis 使用的是不安全的 API, future 的 Java 版本可能不支持该 API。
关于java - Byte Buddy 为构造函数实例化不带参数的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50478383/
在使用指南阅读和理解 linux 内核时- http://www.johnchukwuma.com/training/UnderstandingTheLinuxKernel3rdEdition.pdf
我们正在尝试这种叫做:buddy.works的服务,以取代我们的jenkins管道,用于较小的项目。它提供了用于创建管道的gui,但是我们在访问子目录时遇到了问题。 Resolving host 52
我正在尝试为 springboot 应用程序构建自定义代理。这就是我的代理 premain 的样子 .with(new AgentBuilder.Initializat
我正在尝试使用 Byte Buddy 生成一个非常简单的代码. 我有一个 POJO 类,其中一些字段用 @SecureAttribute 注释,对于这些字段,我想重写 getter 实现并将调用重定向
我已经阅读并理解了二进制伙伴内存分配方法背后的概念,并且我正在尝试将其应用到 C 语言中,但在真正开始之前,我有一些特定于实现的问题。 https://drive.google.com/file/d/
我正在尝试围绕某些类图中的类生成运行时包装器,但我不知道当图中存在循环时如何处理这种情况。想象一下,有一个类 A 有一个类型 B 的字段,但类型 B 有一个类型 A 的字段。我想生成类 A' 和 B'
我看到术语“Buddy 类”被用作“如何向另一个文件中的部分类添加注释”等问题的“答案”,但这些答案假设我知道 Buddy 类 是什么,并且代码示例假设我理解这是如何工作的/为什么工作。 对于 C#
假设我有一个方法m: public void m() { String foo = "foo"; int bar = 0; doSomething(foo, bar); } 我想使用 By
我正在尝试解决人才伙伴的这个问题。 http://www.talentbuddy.co/challenge/52a9121cc8a6c2dc91481f8d5233cc274af0110af382f4
我正在尝试生成具有循环类依赖性的类,类似于这个问题:Byte Buddy - Handling cyclic references in generated classes 作为一个最小的例子,我想生
有必要描述一下这个类的结构 class A{ private List listA; } 尝试了解决方案:Byte-buddy: generate classes with cyclic
我正在尝试实例化一个没有空参数构造函数的类(而且它的直接父类也没有空参数构造函数) Class newClass = new ByteBuddy(); .subclass(Bu
即使我提供了实际的实例,Byte Buddy 似乎也只喜欢将公共(public)类作为拦截器实现;我经常发现自己想做这样的事情: import static MethodDelegation.to;
我正在尝试使用反射来检查给定类的属性是否设置了 ReadOnly 属性。我使用的类是 MVC View 模型(使用部分“伙伴”类作为元数据。 public partial class Account
我正在尝试使用 Java 代理向类添加方法。但它给出了如下错误。 java.lang.VerifyError: Local variable table overflow Exception Deta
是否可以使用 bytebuddy 创建一个全新的类和方法? 我看到的所有示例都使用现有类或拦截现有方法来修改它们。 是否有通过bytebuddy构造一个类并动态添加一些方法并返回该类的实例的示例? 最
几天来我一直在寻找“如何在运行时向方法添加注释”的答案,并找到了这个名为 Byte Buddy 的很棒的工具,使用了它,但仍然无法按我的需要使其工作到。我确定它必须能够从这个问题中做到这一点 Can
我正在尝试使用 ByteBuddy 实现 Profiler。我目前正在努力有效地为我正在分析的方法创建适当的签名。 这是我当前实现的要点:https://gist.github.com/felixba
我正在尝试使用 Byte Buddy 设置一个类,该类实现给定实例的所有接口(interface)并将所有调用转发给该实例,这是我目前的代码: import static net.bytebuddy.
我是 Byte Buddy 的新手,我正在尝试使用它来创建对对象执行 getter 方法的接口(interface)的实现。我的界面如下所示: public interface Executor {
我是一名优秀的程序员,十分优秀!