首页 > 代码库 > 自定义流水号。
自定义流水号。
import java.text.Format;import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map; /** * * @author Phonnie * */public class StreamId { private static final int MAX_VALUE=http://www.mamicode.com/9999; private static final String FORMAT = "yyMMdd"; private static final Format DF= new SimpleDateFormat(FORMAT); private static final byte[] lock = new byte[0]; private String prefix = null; private Date date = null; private int number=1; private static Map<String, StreamId> map = new HashMap<String, StreamId>(); private StreamId(String prefix,Date date){ this.prefix = prefix; this.date = date; } public static StreamId newInstance(String prefix){ Date date = new Date(); return newInstance(prefix,date); } public static StreamId newInstance(String prefix,Date date){ StreamId o = null; synchronized (lock) { String key = getKey(prefix, date); if(map.containsKey(key)){ o = map.get(key); int number = o.getNumber(); if(number<MAX_VALUE){ o.setNumber(number+1); }else { o.setNumber(1); } } else { o = new StreamId(prefix,date); map.put(key, o); } } return o; } private static String getKey(String prefix,Date date){ return prefix+format(date); } private static String format(Date date){ return DF.format(date); } public String toString(){ return prefix+ format(date) + String.format("%04d", number); } public void setNumber(int number) { this.number = number; } public int getNumber() { return number; } public static void main(String[] args){ StreamId sid=newInstance("AA") ; System.out.println("StreamId.main().sid="+sid.toString()); StreamId sida=newInstance("AA") ; System.out.println("StreamId.main().sid="+sida.toString()); }}
自定义流水号。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。