簡體   English   中英

使用導入 static 字段是一種好的編程習慣嗎?

[英]Is it a good programming practice to use import static fields?

我在我的SQLiteOpenHelper class 中聲明了一些常量變量:

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

在我創建 SQL 查詢的Activity中,我導入這些字段:

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

這是一個好習慣嗎?
還是更好地引用常量的傳統方式?

LoginInfoSQLiteOpen.USERNAME

如果您查看某人的代碼並看到類似的字段

foo.do(baz, USERNAME); 

武特(,)? 那個 var 是從哪里來的?
搜索一下,grep,在哪里聲明的?

將其用作ClassName.FIELD會使事情變得更加清晰和清晰。 您可以避免混淆,有時使用一個正確的類名來表示該字段比使用一個憑空出現的字段更有意義。


well, not everyone uses an IDE, and not everyone reads code through an IDE(maybe through a repository on the web), and even some consider VIM an IDE, and I do use vim a lot(although I don't think of it作為 IDE)。
所以,這不是關於 IDE 能做什么或不能做什么,而是更多關於代碼閱讀的內容。 代碼閱讀、代碼質量、用您選擇的編程語言表達想法,通過有意義且緊密結合的抽象方式。

晚了幾年……但我覺得提供相反的觀點是值得的。 There is a reason why Java was designed to have static field imports, and the reason is to hide how the class is implemented to users of the class. 這是面向外代碼的重要設計原則。 我同意 c00kiemon5ter 的做法,但是,在某些情況下它可能是值得的。

More info on static field importing can be found here: https://docs.oracle.com/javase/1.5.0/docs/guide/language/static-import.html

我推薦第二種方法,只導入類而不是字段。 因此,使用擁有的 class 為常量添加前綴,例如LoginInfoSQLiteOpen.USERNAME 它可能變得高度冗余,但從長遠來看,它更具可讀性和可維護性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM