在JDK/12 EarlyAccess Build 10中,JEP-325开关表达式已作为预览功能集成到JDK中。表达式的示例代码(在JEP中也是如此):
Scanner scanner = new Scanner(System.in);
Day day = Day.valueOf(scanner.next());
switch (day) {
case MONDAY, TUESDAY -> System.out.println("Back to work.") ;
case WEDNESDAY -> System.out.println("Wait for the end of week...") ;
case THURSDAY,FRIDAY -> System.out.println("Plan for the weekend?");
case SATURDAY, SUNDAY -> System.out.println("Enjoy the holiday!");
}
其中Day
是枚举,
public enum Day {
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}
Preview Language and VM Features JEP-12已经详细说明了如何使用javac
和java
在编译和运行时启用某个特性。
如何使用Maven来试用这个特性?
3条答案
按热度按时间jdg4fx2g1#
步骤1
我们可以使用以下maven配置来编译使用
--enable-preview
和--release 12
+(例如13
、14
、15
)参数的代码。注意:-我还必须确保在我的MacOS上,我的
~/.mavenrc
文件被配置为将java 13标记为为为maven配置的默认java。第二步
执行maven命令从模块类构建jar
步骤3
使用命令行执行上一步中创建的jar的主类,如下所示:
这将生成如下所示的输出:
(屏幕截图来自上一次执行。)
原因是,如果您指定两个不同的参数,则在配置验证期间不会失败,并且稍后找到的参数会否决有效配置:
sd2nnvve2#
要启用预览功能,必须在compilerArgs下的pom.xml中定义--enable-preview
下面我将介绍如何使用Java 13来启用预览特性。
ttcibm8c3#
从Maven编译器插件3.10.1版开始,有一个专用参数用于启用预览功能:
<enablePreview>
设置为true可启用Java编译器的预览语言功能
boolean
No
maven.compiler.enablePreview
false
示例:
注意,对于Surefire(和Failsafe),没有这样的参数,您必须使用
<argLine>
: