2013-08-31 26 views
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(); 

所以,这是首选,为什么?两种方法的缺点是什么?只是好奇。

+0

唯一的区别是可读性(它对编​​译器没有显着影响,并且会导致相同的字节码)。所以无论你觉得哪个更具可读性。 IMO:选项1。 – assylias

回答

5

那么,这是首选,为什么?

首先应该是首选。代码清晰度是最重要的关注点。

&这两种方法的缺点是什么?

那么,编译器会将第一种方法转换为后一种方法,即用完全限定的名称替换所有的类和类型。这两个代码都会导致相同的字节码。因此,你真的不应该为这些东西烦恼。 (您可以通过运行javap命令来检查字节码)

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

相关岗位:

3
  • 当您有几个具有相同简单名称的类时,将会优先使用完全限定的名称。

  • 在所有其他情况下,优先停留易于阅读方法将导入全quallified名称和使用简单的类名。

1

大概是前者,因为后者看起来有点模糊。如果您使用在不同包中找到的多个类,则只应使用后者(在类之前指定包名称)。

相关问题