2

我只是好奇哪种是首选的编码方式,因为我已经看到这两种方式编写的代码。

import java.util.ArrayList;
import java.util.List;
 /**
 *Rest of code
 */
 List<Blah> blahs = new ArrayList();

或者

import java.util.List;
 /**
 *Rest of code
 */
 List<Blah> blahs = new java.util.ArrayList();

那么,哪个是首选,为什么?两种方法的优缺点是什么?只是好奇。

4

3 回答 3

5

那么,哪个是首选,为什么?

应该首选第一个。代码清晰度是最重要的问题。

两种方法的优缺点是什么?

好吧,编译器无论如何都会将第一种方法转换为后一种方法,方法是用它们的完全限定名称替换所有类和类型。两种代码都将导致相同的字节码。因此,您真的不应该为这些东西烦恼。(可以通过运行javap命令查看字节码)

您使用完全限定名称的唯一原因是解决您已导入的不同包中的名称冲突。例如,如果您同时导入java.util.*java.sql.*,那么您需要使用Date类的完全限定名。

相关帖子:

于 2013-08-31T19:30:52.073 回答
3
  • 当您有多个具有相同简单名称的类时,首选完全限定名称。

  • 在所有其他情况下,首选易于阅读的方法是导入完全限定的名称并使用简单的类名。

于 2013-08-31T19:30:39.703 回答
1

可能是前者,因为后者看起来有点晦涩。如果您使用在不同包中找到的多个类,则应该只使用后者(在类之前指定包名)。

于 2013-08-31T19:31:01.830 回答