我有一个界面

public interface Foo {
    int value();
}

我想要生成此接口的实现,其中该方法是本机实现的:

        final DynamicType.Unloaded<Foo> load = new ByteBuddy()
            .subclass(Foo.class)
            .name("FooNative")
            .initializer(new LoadedTypeInitializer() {
                @Override
                public void onLoad(final Class<?> type) {
                    System.loadLibrary("foo-native");
                }

                @Override
                public boolean isAlive() {
                    return true;
                }
            })
            .method(ElementMatchers.named("foo"))
            .intercept(/* ??? */)
            .make();

如何生成具有native个修饰符的空方法

@Override public native int value();

推荐答案

您宁愿使用defineMethod并向其添加原生修改器.Byte Buddy将自动检测到它是覆盖.

然后在下一步中,您将设置为withoutCode.

Java相关问答推荐

JPackage-results已安装-如何添加系统属性?

伪类focus-in不适用于PFA中的选项卡

Java List with all combinations of 8 booleans

存根基类的受保护方法

Spring Boot Maven包

在AVL树的Remove方法中使用NoSuchElementException时遇到问题

声明MessageChannel Bean的首选方式

如何仅使用键/ID的一部分(组合)高效地返回映射值?

将JSON字符串转换为Java类

如何在盒子的顶部和底部创建两张不同图片(大小相同)的盒子?

AbstractList保证溢出到其他方法

Java类型推断:为什么要编译它?

Bash数组的单引号元素并使用空格连接

让标签占用JavaFX中HBox的所有可用空间

如何以事务方式向ibmmq发送消息

java21预览未命名的符号用于try-with-resources

javax.crypto-密码对象-提供者服务是如何工作的?

如何使用命令行为Java应用程序生成烟雾测试用例

在java中使用SevenZip.openArchive方法后无法删除文件

如何在 Visual Studio 代码中快速生成构造函数和 getter、setter?