我正在使用JShell from JDK 11对泛型进行一些实验。
我想将解释后的Java版本设置为版本8。这将使我具有与Java Language Specification 8中定义的类型推断行为相同的行为。
我该怎么办?
答案 0 :(得分:1)
您要应用的标志是:
"-source 8"
将其传递给JShell背后的编译器的方法是:
"jshell -C "-source 11"
...但是它不起作用。我刚刚尝试过,Jshell未能解析此异常。情况并非如此,因此我调查了引发错误的Arguments类的代码。事实证明,javac
选项分为不同的类别,并且通过JShell仅允许{strong> BASIC
命令(com.sun.tools.javac.main.Option.java :1308)。
设置源标志不属于该组,因此验证器会将其丢弃,并且将不应用设置。
如果要验证这一点,可以尝试将BASIC类型的param传递给javac,例如“ -p”,您将看到它已正确传递。
答案 1 :(得分:0)
不可能,JShell工具使用Java 9功能的Java平台模块系统(JPMS)。