java中导入语句的顺序

java中导入语句的顺序,java,import,Java,Import,我只是想知道。对导入语句进行排序的正确方法是什么?哪一个更具可读性 像 外部类(如java.util.List)和内部包 上课 按字母顺序排列 提前感谢。我更喜欢按字母顺序排列-这是最可读的,不是吗…大多数IDE中使用的最喜欢的,是按字母顺序排列,从域级别和完全限定的类名开始 java.*和javax.*优先,其余按顺序排列 例如: import java.security.KeyManagementException; import java.security.NoSuchAlgorith

我只是想知道。对导入语句进行排序的正确方法是什么?哪一个更具可读性

  • 外部类(如
    java.util.List
    )和内部包
    上课
  • 按字母顺序排列

提前感谢。

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

大多数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;
我喜欢这样:

1) 第一组基于外部和内部API的导入
2) 按字母顺序排列,我不确定是否有标准。但有些项目,如android,使用以下规则

  • 首次导入特定于项目的文件(android)
  • 其次是第三方文件和库
  • java标准api文件
  • 每组由一条额外的线分隔。每个组都有按字母顺序排列的导入项

    好的,这些是根据我们的喜好而定的

    import语句必须在package语句之后。进口 语句应该首先按照最基本的包进行排序, 并与相关包一起分组,并显示一个空行 在小组之间

    import语句位置是由Java 语言。通过排序,可以在列表出现时轻松浏览列表 有许多进口产品,因此很容易确定依赖性 对于当前包,分组通过折叠来降低复杂性 将相关信息合并到一个公共单元中


    有关更多信息,请参阅链接。

    我只是使用IDE(Eclipse)实现的默认顺序。。。并定期运行“整洁进口”的东西,以保持房子的秩序


    如果将其自动化,可读性就不是一个重要的问题。您将很快习惯任何自动订购,无论是什么。此外,人们倾向于无论如何都不阅读导入。

    大多数IDE都很好地完成了这项工作。只需右键单击并说“Organize Imports”。

    正如其他人所提到的,如果您使用的是Eclipse或IntelliJ之类的IDE,可读性就不太重要了,因为您开始相信组织是自动化和完美的

    如果有多个类可能通过
    *
    符号导入同名,那么顺序确实很重要的一个方面就是定义优先级


    比如说,,假设您有
    java.util.List
    org.northpole.christmas.List
    可用,并且指定导入
    java.util.*
    org.northpole.christmas.*
    那么在这种情况下,
    java.util.
    高于
    org.northpole.christmas.
    是有意义的,因为如果我没有真的付钱的话我花了很多心思,后来读了代码,我假设
    List
    java.util.List
    而不是其他东西。这就是为什么我认为Eclipse首先有
    java
    javax
    ,然后是
    org.apache
    ,然后是其他。这些天来,我还把
    com.google
    放在org.apache的上方或下方

    我同意这句话,但值得一提的是,引用的文档“Java编程风格指南”不是Sun/Oracle编写的。据我所知,它只是基于,但在其他方面写的,我不确定他们在这些问题上的权威。遗憾的是,原始Sun/Oracle文档没有提供有关导入顺序的指南。我认为这取决于单个项目/组织来定义。“其余部分是有序的”,但是
    org
    如何先于
    com
    ?“我刚刚在我的月食中发现了这样一个设置,我想知道它是从哪里来的”。@maaartinus问得好。我不知道。也许是因为
    org
    是一个缩短的组织,所以它认为这是一个优先事项?;)org是organization的缩写,正如com是commercial的缩写一样。与amazon.com和iso.org一样,“自己的”包通常位于导入库的下方。这也符合从最一般到具体的顺序。最通用的是java库,然后是一些其他库(如apache),最后是实际的项目。问题是,不是任何最流行的IDE的默认设置……在IDEA为我重新组织导入后,奇怪的编译器将无法识别嵌套类上
    javax.xml.bind.annotation
    中的类。解决方案是什么?我将IDEA配置为按以下顺序添加导入:
    java.
    javax.
    org.
    com.
    net.
    io.
    ,其余部分在末尾。看起来像是
    java.*
    导入必须在
    javax.*
    导入之前。这有点重要,哇。记住这一点。