运用String.format格式化方法和消息枚举类型创建消息模板

package com.han.StringFormat;

import java.util.Date;

/**
 * 运用String.format格式化方法和消息枚举类型创建消息模板
 * 
 * @author han
 *
 */
public class MessageTemplateUtils {

	private enum MessageTemplate {
		ORDER_CREATE(1, "订单创建消息模板", "尊敬的用户您好,您已下单成功,订单号为:%s,下单金额:%d,订单日期:%tF%n"), 
		ORDER_SEND(2, "订单消息发货模板","尊敬的用户您好,您的订单号:%s已经发货,请注意签收,发货日期:%tF%n");
		private int id;//消息模板id
		private String title;//消息模板标题
		private String message;//消息模板内容 

		private MessageTemplate(int id, String title, String message) {
			this.id = id;
			this.title = title;
			this.message = message;
		}
		public String getMessage() {
			return message;
		}
	}
    /**
     * 根据消息模板id生成消息
     * @param taskState
     * @param objects
     * @return
     */
	public static String creatMsgTemplateByTempId(MessageTemplate taskState, Object... objects) {
		String str = String.format(taskState.getMessage(), objects);
		return str;
	}

	public static void main(String[] args) {
		Date date = new Date();
		System.out.println(creatMsgTemplateByTempId(MessageTemplate.ORDER_CREATE, new Object[] { "RN00001", 1000, date, date }));
		System.out.println(creatMsgTemplateByTempId(MessageTemplate.ORDER_SEND, new Object[] { "RN00001", date }));
	}
}

运行结果:

尊敬的用户您好,您已下单成功,订单号为:RN00001,下单金额:1000,订单日期:2019-08-22

尊敬的用户您好,您的订单号:RN00001已经发货,请注意签收,发货日期:2019-08-22

 

你可能感兴趣的:(java)