问题标签 [jep]

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 投票
0 回答
14 浏览

python - 杰普异常:: 缓冲区格式 'l' 对于字节 [] 无效

我们正在尝试使用如下方式从 java 代码中读取 python 模块的返回值。

我们在“Map output= (HashMap) interp.getValue('result_ind');”处收到以下错误

jep.JepException:<class 'TypeError'>:缓冲区格式 'l' 对于字节 [] 无效。在 jep.Jep.getValue(Native Method) 在 jep.Jep.getValue(Jep.java:487) 在

你能帮我们解决一下吗

0 投票
1 回答
91 浏览

java - 有可选的 JEP 吗?

我喜欢通过查看相应的 JEP 来了解 Java 的特性。有 Java 的 JEPOptional吗?在此列表中搜索 Java 8 功能时,我找不到任何东西。

0 投票
1 回答
119 浏览

java - 在什么情况下我应该使用 JEP334(JVM 常量 API)

我正在学习 Java 17,并且使用 JEP334(JVM 常量 API),我知道如何获取ClassDesc, MethodTypeDesc, MethodHandleDesc, DynamicConstantDesc.

但是这些对象能做什么呢?

在哪些应用场景中需要这些对象?

0 投票
2 回答
163 浏览

java - Lambda 表达式和匿名类在作为隐藏类加载时不起作用

我正在尝试在运行时编译和加载动态生成的 Java 代码。由于 ClassLoader::defineClass 和 Unsafe::defineAnonymousClass 在这种情况下都有严重的缺陷,我尝试通过Lookup::defineHiddenClass使用隐藏类。这适用于我尝试加载的所有类,除了那些调用 lambda 表达式或包含匿名类的类。

调用 lambda 表达式会引发以下异常:

执行实例化匿名类的代码会引发以下错误:

这是一个重现问题的简短示例:

我已经尝试使用不同的 JDK 编译和运行代码,使用不同的方式创建隐藏类的新实例,在https://bugs.openjdk.java.net/上搜索错误,弄乱字节码本身和几个其他事情。我不是 Java 内部的专家,所以我不确定我是否没有理解正确引入隐藏类的 JEP。

我做错了什么,这是不可能的还是这是一个错误?

编辑:JEP状态

迁移应考虑以下因素: 要从隐藏类中的代码调用私有的 nestmate 实例方法,请使用 invokevirtual 或 invokeinterface 而不是 invokespecial。使用invokespecial 调用私有nestmate 实例方法的生成字节码将无法验证。invokespecial 应该只用于调用私有的 nestmate 构造函数。

这可能是匿名类的问题。有没有办法编译代码,以便在字节码中避免调用特殊?