gpt4 book ai didi

java - Eclipse:导入中的双分号

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:55:11 40 4
gpt4 key购买 nike

使用 Eclipse,如果我在导入行(不是最后一个导入行)上有一个额外的分号,我会在 IDE 中看到语法错误。但是,这在 IDE 之外(在本例中为 Maven)编译良好。

例子:

import java.util.ArrayList;; //notice extra semicolon
import java.util.List;

还有其他人看到这种行为吗?为什么这显示为语法错误?我正在与一直将这些推到源代码管理的人一起工作,这让我很恼火(他们显然没有使用 Eclipse)。

全面披露...我正在使用 SpringSource Tool Suite 2.8.0。

最佳答案

这是一个语法错误,因为 import 是声明,而不是语句;你不能在类之外有语句。

参见 JLS 7.5有关详细信息,但本质上,导入声明以单个 ; 结尾。

例如单类型导入:

SingleTypeImportDeclaration:
import TypeName ;

在 JLS 的语法描述中,没有允许空导入语句的歧义,除了包之外,编译单元的前置词中不能包含任何其他内容。

CompilationUnit:
[[Annotations] package QualifiedIdentifier ; ] {ImportDeclaration}
{TypeDeclaration}

ImportDeclaration:
import [ static] Identifier { . Identifier } [ . * ] ;

我认为这意味着 Eclipse 是正确的,JDK 编译器是错误的。

关于java - Eclipse:导入中的双分号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125558/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com