问题标签 [java-15]
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.
java - Java记录构造函数通过反射不可见
我正在使用 Java 15 的新记录功能,以及它如何与反射交互。我遇到了一些奇怪的行为,有时我可以通过反射访问记录的构造函数,有时不能。例如,给定以下 Java 文件:
Recording.java
:
其行为如下:
换句话说,调用getConstructors()
没有找到任何构造函数(而调用 `getDeclaredMethods() 确实找到了方法)。我不明白为什么不,因为构造函数确实存在:
(将记录放在单独的 Java 文件中会得到相同的结果。)
但是,如果我从 JShell 做同样的事情:
所以,现在它确实找到了构造函数。
这是我正在使用的 Java 版本:
从 Java 14 编译和运行相同的程序确实有效:
我知道在 Java 15 中,与 Java 14 相比,对记录的反射设置了许多限制,但如果我正确阅读JEP,这些限制仅适用于修改。寻找(也许是调用)构造函数似乎并不适用。
谁能告诉我这里发生了什么?我需要做什么才能通过反射在 Java 15 中查看记录的构造函数?
java - Java中密封类和最终类之间的区别
我刚刚读到 Java 15 应该有sealed
类。
jep360说:
密封的类和接口限制了哪些其他类或接口可以扩展或实现它们。
我认为这正是 afinal class
在 Java 中所做的。final class
所以现在我想知道: a和 a 有什么区别sealed class
?
soapui - Windows 8.1 上的 SoapUI 5.6.0 UnsupportedClassVersionError
我在 Windows 8.1 上安装了以下版本的 Java。JAVA_HOME
环境变量指向新安装的 JDK 库。
当我启动 SoapUI 5.6 时,我收到以下错误消息:
java - Java中的“密封接口”有什么意义?
密封类和密封接口是 Java 15 中的一个预览功能,Java 16中有第二个预览,现在建议在 Java 17 中交付。
他们提供了经典示例,例如Shape
-> Circle
、Rectangle
等。
我了解密封类:switch
提供的语句示例对我来说很有意义。但是,密封接口对我来说是个谜。任何实现接口的类都被迫为它们提供定义。接口不会损害实现的完整性,因为接口本身是无状态的。我是否想将实现限制为几个选定的类都没关系。
你能告诉我 Java 15+ 中密封接口的正确用例吗?
java - 为什么 JDK 15 的时间 API 在 Linux 上提高了精度,但在 macOS 上却没有?
java.time.OffsetDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME)
在 Linux 上的 OpenJDK 15 (build 36) 上,第二个之后的精度为 9 位:
但是 macOS 上的相同命令(相同的 JDK 版本)只有 6 位数字:
Linux 和 macOS 上的 JDK 14 也只使用 6 位数字。
同一JDK版本上的体系结构之间的精度不应该相同吗?
java - 在 Tomcat JSP 页面中使用 JDK15 的 JEP 378 文本块
示例代码:
得到。
org.apache.jasper.compiler.JDTCompiler.generateClass 不支持的目标 VM [15] 请求,使用 [13]
/usr/local/tomcat/bin/version.sh 报告:
在http://tomcat.apache.org/tomcat-10.0-doc/changelog.html我看到:
添加对将 Java 14(值为 14)和 Java 15(值为 15)指定为 JSP 编译的编译器源和/或编译器目标的支持。如果与不支持这些值的 ECJ 版本一起使用,将记录警告并使用最新支持的版本。(市场)
任何人都成功让文本块在非 alpha Tomcat 上工作?
java - Java泛型不可能赋值?
每次我认为我更好地理解泛型(并且可以在不编译的情况下回答)时,我都会遇到一个这个理论被打破的例子。这是一个非常简单的例子:
和两个调用:
对我来说,任何调用都不应该编译。AString
不是 的超类型List
。尽管如此,第二个编译。但是让我们假设发生这种情况是因为编译器可以在这里推断出某种类型。当然这样的类型不存在,它会在运行时失败,对吧?对?没有。它只是工作。因此,有人可以给我的生活带来一些理智吗?