modelにおける列挙(enum)の応用

2565 ワード


 
package hb.thread;

public class AJMessage {

	private String subject;// 
	private String body;// 
	private AJMessageType type;// 
	private String from;// 
	private String id;//id 
	private String to;// 
	
	/**
	 * all  
	 * online  
	 */
	private String thread;

	public String getThread() {
		return thread;
	}

	public void setThread(String thread) {
		this.thread = thread;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getBody() {
		return body;
	}

	public void setBody(String body) {
		this.body = body;
	}

	public AJMessageType getType() {
		return type;
	}

	public void setType(AJMessageType type) {
		this.type = type;
	}

	public String getFrom() {
		return from;
	}

	public void setFrom(String from) {
		this.from = from;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getTo() {
		return to;
	}

	public void setTo(String to) {
		this.to = to;
	}
	
	// 
	public static enum AJMessageType{
		
		normal("normal"),chat("chat"),groupchat("groupchat"),error("error"),headline("headline");
		
		private String name;
		
		private AJMessageType(String name){
			this.name = name;
		}
		
		public String toString(){
			return this.name;
		}
		
	}
	
}

 
 
コメント:
列挙にプライベート構造メソッドを追加し、一意の識別子として文字列属性を定義し、toString()メソッドを複写することで、列挙の値を文字列で決定できます.
 
テストクラス:
 
package hb.thread;

public class Test {

	public static void main(String[] args) {
//		AJMessage msg = new AJMessage();
//		msg.setType(AJMessage.AJMessageType.chat);
		System.out.println(AJMessage.AJMessageType.chat);
		System.out.println(AJMessage.AJMessageType.error);
		System.out.println(AJMessage.AJMessageType.groupchat);
		System.out.println(AJMessage.AJMessageType.headline);
	}

}

 
 
印刷結果:
chat
error
groupchat
headline