-source 1.3不支持泛型

时间:2013-04-01 15:26:02

标签: java gwt maven

我在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

这可能是什么原因?

7 个答案:

答案 0 :(得分:9)

在Java 1.5中添加了泛型。你的maven正在编译java 1.3。

这可以通过两种方式之一修复。

删除泛型,以便您可以编译&lt; 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

答案 1 :(得分:3)

您需要告诉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>

答案 2 :(得分:1)

使用-source 1.3编译代码时,编译器不支持在JDK 1.3之后引入的断言,泛型或其他语言功能。

答案 3 :(得分:0)

您需要更改设置,以便将源设置为1.5+或从代码中删除泛型:

private final TextField customer;

答案 4 :(得分:0)

泛型仅作为Java 5中的一个特性引入,因此在使用3进行编译时,不允许使用泛型。如果您想了解有关泛型的更多信息,请查看here。因此,您需要使用5或更高版本进行编译或停止使用泛型。

答案 5 :(得分:0)

Android Studio:通过在文件应用build.gradle中添加以下几行来修复

compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }

注意:使用最新的Java版本,这里我使用的是Java 8

答案 6 :(得分:0)

如果您不使用maven并在Intellij编辑器中遇到类似问题,则可能值得检查“项目设置”。 即使定义了正确的JDK,也可以更改“项目语言级别”,并且可以配置5以上。

相关问题