java类中的导入顺序是什么以及如何解决它
在我的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导入放在列表导入
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.这工作做得很好。我们必须按照字母顺序