Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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类中的导入顺序是什么以及如何解决它_Java_Sonarqube - Fatal编程技术网

java类中的导入顺序是什么以及如何解决它

java类中的导入顺序是什么以及如何解决它,java,sonarqube,Java,Sonarqube,在我的java类中,有多个导入,如下所示 import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; 我的问题是sonar报告在进口订单类别下讲述了轻微违规行为 导入“java.util.ArrayList”的顺序错误。 这到底意味着什么,以及如何解决声纳违规问题 提前感谢。将ArrayList导入放在列表导入

在我的java类中,有多个导入,如下所示

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
我的问题是sonar报告在进口订单类别下讲述了轻微违规行为

导入“java.util.ArrayList”的顺序错误。

这到底意味着什么,以及如何解决声纳违规问题


提前感谢。

将ArrayList导入放在列表导入之后。

如果您正在使用eclipse,请尝试
Ctrl+Shift+O
修复导入


另请参见

导入java.util.ArrayList的
没有任何问题,它只是碰巧是第一个违反规则的。要完整回答您的问题,需要显示您的所有导入内容。最可能的原因是导入组顺序。

导入语句的顺序对编译器或JVM并不重要。这只是一种编码风格偏好。就个人而言,我喜欢使用
导入一些.package.
如果我为一个特定的包使用了3个以上的类。

根据我的经验,一个包中的类必须按字母顺序排序。因此,请查看位于ArrayList之前的类,并参考java.util包(如果有的话)。就我而言,情况如下:

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

我知道我来晚了,但这可以帮助其他人

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
上面的内容并没有违反规则,因为它按字母顺序进行了很好的排序,当这些导入中的任何一个位于没有正确排序顺序的其他导入之间时,您会得到“错误的'java.util.'import'顺序”。例如:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
由于导入没有得到很好的排序,上述操作违反了规则。要解决这个问题,只需将“java.util”导入移到“org.slf4j”导入之上。有点像:

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
此外,除了按字母顺序排序外,似乎还有一个顺序来安排导入

  • 静态输入
  • 从同一项目中的其他包导入
  • 从java导入
  • 从框架中导入
  • 所有其他进口

  • 不是所有的都有更多的导入,但是重新映射的都是自定义类。可能是ArrayList应该在自定义类之前或之后。我想这取决于包名。请尝试将
    ArrayList
    移动到
    List
    之后,因为它实现了接口
    List
    。虽然这个警告对我来说毫无意义,但它可能会起作用。为什么?这里的政策是什么?违规可能来自以下规则:无法弄清楚为什么它抱怨ArrayList导入此响应是错误的,其他帖子解释了突出显示此项的真正原因。很可能移动ArrayList导入会违反“有序”规则。我已经这样做了,但导入顺序仍然没有变化更多的是评论而不是答案,但在这一点上,如果OP没有提供更多反馈,那就最好了+1.这工作做得很好。我们必须按照字母顺序