列挙intモード

2272 ワード

エニュメレート・タイプがまだ導入されていない場合、JDK 1.5以前にエニュメレート・タイプを表す一般的なパターンは、一組の名前を表すint定数である。
以下は具体的な例です。このクラスは、太字、取り消し線、下線などのスタイルを持っているテキストの一部を表します。
public class Text {
	
	//      
	public static final int STYLE_BOLD      = 1 << 0; // 1
	public static final int STYLE_ITALIC    = 1 << 1; // 2
	public static final int STYLE_UNDERLINE = 1 << 2; // 4
	public static final int STYLE_STRIKE    = 1 << 3; // 8

	private int styles;
	
	public void applyStyles(int styles) {
		this.styles |= styles;
	}
	
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append("Text Style:");
		if((styles & STYLE_BOLD) != 0) {
			sb.append("-bold");
		}
		if((styles & STYLE_ITALIC) != 0) {
			sb.append("-italic");
		}
		if((styles & STYLE_UNDERLINE) != 0) {
			sb.append("-underscore");
		}
		if((styles & STYLE_STRIKE) != 0) {
			sb.append("-strike");
		}
		return sb.toString();
	}
	
	public static void main(String[] args) {
		Text text = new Text();
		text.applyStyles(Text.STYLE_BOLD | Text.STYLE_UNDERLINE);
		System.out.println(text);
	}
}
  :Text Style:-bold-underscore
複数のスタイルを適用したい場合は、|操作子で接続できます。このテキストにどのようなスタイルが適用されているかを知りたい場合は、&オペレータで検証できます。
なお、各定数値は2の倍数であり、このタイプはintであり、全部で32ビットあることに注意してください。
STYLE BOLD:
0000 0000 0000 0000 0000 0001
STYLECU:
0000 0000 0000 0000 0000 0000 0010
STYLEUNDERLINE:
0000 0000 0000 0000 0000 0000 0000 0100
STYLESHIKE:
0000 0000 0000 0000 0000 000 000 000 000 000 000 000,000
太字、斜体、下線を適用する場合:
int style=STYLE_BOLD_STYLE STYLE_STYLE_STYLE_STYLE
1|0=1、1 124; 1=1、0 124; 0=0ですから。
だからスタイル= 0000 0000 0000 0000 0000 011 // 11
このスタイルに何らかのスタイルが含まれているかどうかを判断するなら、そのスタイルと具体的なスタイルを&演算します。
たとえば、太字スタイルが適用されているかどうかを判断します。
0000 0000 0000 0000 0000 011& 0000 0000 0000 0000 0000 0001= 0000 0000 0000 0000 0000 0001
style&STYLE BOLD!=1 or style&STYLE BOLD==STYLE BOLD
現在、エニュメレート・モードを適用しているのは、Java.nio.cnnels.Selection Keyであり、エニュメレーションの定数は、OPuREAD、OPuWRITE、OPuACCEPT、OPuCONNET、およびandroid.ap.Notificationを含み、そのエニュメニュメニュメニュメニュレーションの定数は、DeFALTSを含みます。
エニュメレート・モードは、タイプの安全性と使用の利便性には何の助けもないので、エニュメレート・タイプを使用して代替することを推奨します。