java中的import语句顺序

想知道。 订购import语句的正确方法是什么? 哪个更具可读性?

喜欢,

  • 外部类(如java.util.List )然后是内部包
    类。
  • 只是按字母顺序排列

提前致谢。

来自Java编程风格指南

import语句必须遵循package语句。 import语句应该首先使用最基本的包进行排序,并将相关的包组合在一起,并在组之间使用一个空行。

….. …..

import语句位置由Java语言强制执行。 排序使得在有许多导入时浏览列表变得简单,并且可以很容易地确定当前包的依赖性。分组通过将相关信息折叠到公共单元中来降低复杂性。

有关详细信息,请参阅Java Tutorial链接。

最喜欢的,在大多数IDE中使用的是字母顺序,从域级别和完全限定的类名称开始。

java.*javax.*优先,其余的都是有序的。

例:

 import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import org.apache.http.conn.ClientConnectionManager; import org.apache.http.conn.scheme.Scheme; import org.apache.http.conn.scheme.SchemeRegistry; import org.apache.http.conn.ssl.SSLSocketFactory; import org.apache.http.impl.client.DefaultHttpClient; import com.neurologic.http.HttpClient; import com.neurologic.http.impl.ApacheHttpClient; 

我不确定是否有标准。 但像android这样的一些项目使用以下规则。

  1. 首先导入项目特定文件(android)
  2. 其次是第三方文件和库。
  3. java标准api文件。

每组由一条额外的线分开。 每个组都按字母顺序排列。

AFAIK这些都是基于我们的偏好。

我只是使用我的IDE(Eclipse)实现的默认顺序…并定期运行“Tidy Imports”,以保持房屋整齐。

如果您自动执行此操作,可读性不是一个重要问题。 无论是什么,您都会很快习惯任何自动订购。 此外,人们往往不会阅读import。

我更喜欢按字母顺序排列 – 这是最具可读性的,不是吗……

正如其他人所提到的,如果您使用的是像Eclipse或IntelliJ这样的IDE,可读性并不是太令人担忧,因为您开始相信组织是自动化且完美的。

那么,顺序重要的一个区域是定义优先级,如果您有多个具有相同名称的类可能通过.*表示法导入。

例如,假设你有java.util.Listorg.northpole.christmas.List可用,你指定import java.util.*org.northpole.christmas.*在这种情况下,有java.util.*是有意义的java.util.*高于org.northpole.christmas.*因为如果我真的没有那么多关注并且我之后正在阅读代码,我会认为Listjava.util.List而不是其他东西。 这就是为什么,我相信,Eclipse首先是javajavax ,然后是org.apache ,然后是其他的。 这些天我也在org.apache上方或下方滑动com.google

我更喜欢这个:

1)基于外部和内部API的第一组导入2)在每个组内按字母顺序排列

大多数IDE很好地完成了这项工作。 只需右键单击并说出“组织import”。