使用导入静态字段是一种很好的编程习惯吗?

时间:2011-06-28 01:53:14

标签: java android static import

我在SQLiteOpenHelper类声明了一些常量变量:

public static final String USERNAME = "user_name";
public static final String PASSWORD = "password";

在我创建SQL查询的Activity中,我导入了以下字段:

import com.mygame.ui.login.LoginInfoSQLiteOpenHelper.*;

这是一个好习惯吗? 或者传统的方式更好地引用常量?

LoginInfoSQLiteOpen.USERNAME

3 个答案:

答案 0 :(得分:9)

如果你看某人的代码并看到像

这样的字段
foo.do(baz, USERNAME); 

wut(!),那个var来自哪里?
搜索,grep,它在哪里声明?

将其用作ClassName.FIELD可以使事情更清晰,更清晰。 你可以避免混淆,有时候,一个表示字段的正确类名比一个无处出现的字段更有意义。


好吧,不是每个人都使用IDE,并不是每个人都通过IDE(可能是通过网络上的存储库)读取代码,甚至有些人认为VIM是IDE,而且我确实使用了vim(虽然我没有把它想象成一个IDE) 因此,它不是关于IDE能做什么或不能做什么,而是关于代码读取的更多内容。代码阅读,代码质量,表达想法在您选择的编程语言中,通过抽象 有意义并且很好地结合在一起。

答案 1 :(得分:3)

晚会结束几年......但我觉得值得提供相反的观点。 Java设计为具有静态字段导入的原因是有原因的,原因是隐藏类如何实现给类的用户。这是面向外部代码的重要设计原则。我同意c00kiemon5ter对它的看法,但是,可能会出现值得的情况。

有关静态字段导入的更多信息,请访问:https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

答案 2 :(得分:2)

我推荐第二种方法,只导入类而不是字段。因此,在常量前面加上拥有类,例如LoginInfoSQLiteOpen.USERNAME。它可能变得非常冗余,但从长远来看它更具可读性和可维护性。