package net.yhte.its.jl.config;
import net.yhte.its.jl.JLClientSendMsgByHttp;
import net.yhte.its.jl.config.JLCountByHttp;
public class JLCountByHttp {
private static int count;
private static int num;
private static JLCountByHttp instance=null;
public synchronized int getCount() {
return count;
}
public synchronized void setCount(int count) {
JLCountByHttp.count = count;
}
public synchronized int getNum() {
return num;
}
public synchronized void setNum(int num) {
JLCountByHttp.num = num;
}
public static JLCountByHttp getInstance(){
if(instance==null){
synchronized(JLClientSendMsgByHttp.class){
if(instance==null){
instance = new JLCountByHttp();
JLCountByHttp.count=0;
JLCountByHttp.num = 0;
}
}
}
return instance;
}
/**
* 计数器
* @param b
* @return
*/
public synchronized int count(boolean b){
if(b){
JLCountByHttp.count = JLCountByHttp.count+1;
}else{
JLCountByHttp.count = JLCountByHttp.count-1;
}
return JLCountByHttp.count;
}
/**
* 流水号
* @return
*/
public synchronized String num(){
if(JLCountByHttp.num == 999999){
JLCountByHttp.num = 0;
}else{
JLCountByHttp.num = JLCountByHttp.num + 1;
}
return String.format("%06d", JLCountByHttp.num);
}
}
synchronized 使计数安全,不会重复计数。
“String.format(“%06d”, JLCountByHttp.num)”数字前自动补零,“6”表示6位数,即数字为22,补零后为“000022”。
public class JLClientSendMsgByHttp {
public static void test() {
// 流水号
String num = JLCountByHttp.getInstance().num();
System.out.println(num);
}
}