10得票2回答
Lambda表达式和匿名类在作为隐藏类加载时无法正常工作。

我正在尝试在运行时编译和加载动态生成的Java代码。由于ClassLoader :: defineClass和Unsafe :: defineAnonymousClass在这种情况下都有严重的缺点,所以我尝试使用隐藏类通过Lookup :: defineHiddenClass来代替。这对于我尝...

7得票1回答
Java记录类型构造函数在反射中不可见。

我正在尝试使用Java 15的新记录特性,并了解它与反射的交互。我遇到了一些奇怪的行为,有时可以通过反射访问记录的构造函数,有时则不能。例如,给定以下Java文件: Recording.java: public class Recording { public static voi...

9得票1回答
如何在Eclipse 2020-09中使用Java 15版本

我正在尝试在Eclipse 2020-09下运行新的Java 15功能。 我已经安装了OpenJDK 15并将其设置为“已安装的JRE”: 然而,我无法将此版本设置为编译器版本(仅限14版): 我做错了什么?

22得票7回答
Java中的“sealed interface”有什么作用?

密封类和密封接口是Java 15中的预览功能,在Java 16中进行了第二次预览,现在计划在Java 17中发布。 它们提供了经典的示例,如Shape -> Circle,Rectangle等。 我理解密封类:提供的switch语句示例对我有意义。但是,密封接口对我来说是一个谜。实现接口的任何...

23得票4回答
如何在Java 15的文本块功能中添加变量?

刚刚发现了Java 15的一个新功能,即“文本块”。我可以假设通过使用“+”运算符与文本块连接可以添加变量,如下所示:String html = """ <html> <body> ...

15得票3回答
Java 15中密封类特性中,final和非密封类有什么区别?

我有以下封装接口(Java 15):public sealed interface Animal permits Cat, Duck { String makeSound(); } 这个接口被2个类实现:public final class Cat implements Animal...

28得票3回答
在Java 15记录中,将值设置为其中一个属性

我在我的代码中使用了Java 15预览功能record,并将该record定义如下public record ProductViewModel ( String id, String name, ...

8得票2回答
Java record vs lombok @Value

Java 14(第一个预览版)和Java 15(第二个预览版)引入了新的语言特性,即记录(Records)。据我理解,它们将用于减少不可变数据对象中的样板代码。因此,这一行代码: public record Person (String firstName, String lastName)...

10得票2回答
从Java 15开始,您如何继续使用Javascript?

在我的Java应用程序中,一个小但重要的功能是能够根据音频文件的元数据(例如专辑/艺术家-标题)重命名音频文件,并且使用Javascript指定掩码,这使得重命名功能非常灵活和强大。 我知道Javascript已经被弃用,但现在似乎它实际上将从Java 15开始被删除。对于我来说,这个功能的...

55得票4回答
将一个密封类与一个非密封类进行扩展的意义何在?

我真的不太明白为什么在JEP-360 / Java 15中会有一个"non-sealed"关键字。对我来说,一个"sealed"类的扩展应该只能是"final"或者是一个"sealed"类本身。 提供"non-sealed"关键字会引发开发者的hack行为。 为什么我们允许一个"sealed...