在Java方法中指定標誌的最佳做法是什麼?在Java方法中使用標誌的最佳實踐
我已經看到了使用SWT int值作爲位字段,如:
(例如部分從 「有效的Java,第二版」 159頁):
public class Text {
public static final int STYLE_BOLD = 1 << 0; // 1
public static final int STYLE_ITALIC = 1 << 1; // 2
void printText(String text, int flags) {
}
}
和你的客戶電話是這樣的:
printText("hello", Text.STYLE_BOLD | Text.STYLE_ITALIC);
..但這種不鼓勵,你可以混合標誌從不同的類(INT值)在一起,而沒有任何編譯器檢查。
在同一本書(「有效的Java」),我看到使用EnumSet的,但那麼你的用戶呼叫變成:
printText("hello", EnumSet.of(Style.Bold, Style.ITALIC));
我覺得這是一個有點冗長,我更喜歡SWT的風采。
有沒有其他的選擇,或者這基本上是你必須選擇的兩種口味?
我想你的意思是'STYLE_ITALIC = 1 << 1'。 – 2011-05-20 14:30:47
@Victor我認爲這是位域方法常見問題的一個很好的演示! – Anonymoose 2011-05-20 14:32:34
確實如此。 :) – 2011-05-20 14:33:31