我在SQLiteOpenHelper
类声明了一些常量变量:
public static final String USERNAME = "user_name";
public static final String PASSWORD = "password";
在我创建SQL查询的Activity
中,我导入了以下字段:
import com.mygame.ui.login.LoginInfoSQLiteOpenHelper.*;
这是一个好习惯吗? 或者传统的方式更好地引用常量?
LoginInfoSQLiteOpen.USERNAME
答案 0 :(得分:9)
如果你看某人的代码并看到像
这样的字段foo.do(baz, USERNAME);
wut(!),那个var来自哪里?
搜索,grep,它在哪里声明?
将其用作ClassName.FIELD
可以使事情更清晰,更清晰。
你可以避免混淆,有时候,一个表示字段的正确类名比一个无处出现的字段更有意义。
答案 1 :(得分:3)
晚会结束几年......但我觉得值得提供相反的观点。 Java设计为具有静态字段导入的原因是有原因的,原因是隐藏类如何实现给类的用户。这是面向外部代码的重要设计原则。我同意c00kiemon5ter对它的看法,但是,可能会出现值得的情况。
有关静态字段导入的更多信息,请访问:https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html
答案 2 :(得分:2)
我推荐第二种方法,只导入类而不是字段。因此,在常量前面加上拥有类,例如LoginInfoSQLiteOpen.USERNAME
。它可能变得非常冗余,但从长远来看它更具可读性和可维护性。