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,使用以下规则
有关更多信息,请参阅链接。我只是使用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.*
导入之前。这有点重要,哇。记住这一点。