“localhost”在Java SE 6中是否有常量?虽然打字并不困难,但是在许多地方使用一个常量而不是字符串可能更好。是否有标准做法?
编辑:我知道如何创建一个常量。过去,我发现像org.apache.http.HttpHeaders这样的常量比使用自己的常量更清晰,因为它们不太容易出错或意外修改。
“localhost”在Java SE 6中是否有常量?虽然打字并不困难,但是在许多地方使用一个常量而不是字符串可能更好。是否有标准做法?
编辑:我知道如何创建一个常量。过去,我发现像org.apache.http.HttpHeaders这样的常量比使用自己的常量更清晰,因为它们不太容易出错或意外修改。
你可以像这样获取本地主机名:
InetAddress.getLocalHost().getHostName()
上述代码片段将返回本地主机配置的名称(实际上不是字符串"localhost"
)。我认为最好编写自己的常量:
public static final String LOCAL_HOST = "localhost";
虽然有些人会认为这是一种不好的做法,但其是否好还需讨论。你可以在任何需要使用它的类中静态地导入常量,只需将"package.to"
替换为该类所在的真实包名,将TheClass
替换为定义常量的实际类名:
import static package.to.TheClass.LOCAL_HOST;
LOCAL_HOST
即可。getLocalHost().getHostName()
,它可能为null
,如果您不允许它,则可能导致NPE。如果硬编码“localhost”,则可能无法解析。如果将它们中的任何一个放在常量后面,那么您会得到某些“应始终工作”的幻觉... - Stephen C