Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java -源代码1.3中不支持泛型_Java_Gwt_Maven - Fatal编程技术网

Java -源代码1.3中不支持泛型

Java -源代码1.3中不支持泛型,java,gwt,maven,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

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

原因可能是什么?

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

private final TextField customer;

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

泛型是在java 1.5中添加的。您的maven正在为Java1.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>

org.apache.maven.plugins
maven编译器插件
3
1.5
1.5

这告诉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>

org.apache.maven.plugins
maven编译器插件
1.7
1.7

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

Android studio:它通过在app build.gradle文件中添加以下行进行修复

编译选项{
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}


注意:使用最新的java版本,这里我使用的是java 8,如果您不使用maven,并且在Intellij编辑器中面临类似问题,可能值得检查项目设置。
即使您定义了正确的JDK,也可以更改“项目语言级别”并配置5。有趣的事实:JDK 1.3在5月8日将满13岁!我不明白为什么是JDK1.3。据我所知,在使用mavenMaven创建应用程序时,我甚至没有想到会出现这种情况。mavenMaven应该至少默认为1.4甚至1.5。试试这个命令,mvn--version它给出了什么?给你:
ApacheMaven 2.2.1(rdebian-8)Java版本:1.6.0_27
Hmm,这很奇怪。我想有人已经将您的pom.xml配置为指向1.3。我看不到任何其他解释为什么它会这样编译。
<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>