![](/img/trans.png)
[英]Xcode: 'Generics are not supported in -source 1.3' compiler error?
[英]generics are not supported in -source 1.3
我在进行Maven包装时遇到问题。 在此代码中:
public class LoginDialog extends Dialog {
private final TextField<String> customer;
^here
private final TextField<String> login1;
private final TextField<String> password1;
private final MainController controller= new MainController();
private String customerId;
private String login;
private String password;
我有类似的错误:
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Compilation failure
...src/main/java/com/messagedna/web/client/widget/LoginDialog.java:[19,27] error: generics are not supported in -source 1.3
这可能是什么原因?
泛型是在Java 1.5中添加的。 您的maven正在针对Java 1.3进行编译。
这可以通过以下两种方法之一来解决。
删除泛型,以便您可以编译<1.5
更改Maven配置,以针对Java的较新版本进行编译。 您应该可以在pom中编辑编译器插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
这告诉Maven为1.5编译
您需要告诉Maven编译器插件您的代码正在使用最新的Java版本。 例如,如果您使用的是Java 7,请执行以下操作:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
使用-source 1.3
编译代码时,编译器不支持JDK 1.3之后引入的断言,泛型或其他语言功能。
您要么需要更改设置,以便将源设置为1.5+,要么从代码中删除泛型:
private final TextField customer;
泛型仅在Java 5中作为功能引入,因此在使用3进行编译时,将不允许泛型。 如果您需要有关泛型的更多信息,请参见此处 。 因此,您需要使用5或更高版本进行编译,或者停止使用泛型。
Android Studio:通过在文件应用程序build.gradle中添加以下这些行来修复
compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
注意:使用最新的Java版本,这里我使用的是Java 8
如果您不使用maven并在Intellij编辑器中遇到类似问题,则可能值得检查“项目设置”。 即使定义了正确的JDK,也可以更改“项目语言级别”,并且可以配置5以上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.