【发布时间】:2020-02-19 15:44:26
【问题描述】:
我有一个 interface 有一些方法(未知数)。
我想用方法创建另一个interface,它具有相同的名称和参数类型,但没有返回类型。
然后,我想使用第二个创建的 interface 来创建一个新的 class byteBuddy。但是当我使用创建的interface 创建一个新的时,我得到了
IllegalStateException: 找不到类文件 第二接口。
示例代码:
Class<?> clazz
= new ByteBuddy()
.makeInterface()
.name("secondInterface")
.make()
.load(classLoader)
.getLoaded();
for (Method method : FirstInterface.class.getMethods()) {
Class<?>[] classes = method.getParameterTypes();
List<Class<?>> classList = new ArrayList<Class<?>>(Arrays.asList(classes));
classList.add(Object.class);
clazz
= new ByteBuddy()
.rebase(clazz)
.defineMethod(method.getName() + "Reverse", Void.class, Modifier.PUBLIC)
.withParameters(classList)
.withoutCode()
.make()
.load(classLoader)
.getLoaded();
}
我做错了什么? byteBuddy 是否允许从刚刚创建的另一个类创建一个类?
【问题讨论】:
标签: java byte-buddy