import cn.com.hwqh.util.StringUtils;
import java.lang.reflect.Method;
public class ClientVersion {
public static void main(String[] args) {
//客户端传过来的版本号
String clientVersion="0100";
//服务器数据库最新版本
String serverVersion="2.0";
//如果高于或者等于当前版本就返回true 否则 false
boolean b = ClientVersion.CheckClientVersion(clientVersion,serverVersion);
System.out.println(b);
}
public ClientVersion() {
}
public static <T> Method getVersionMethod(String currMethodName, Integer version, Class<T> c, Class[] _class) throws SecurityException, NoSuchMethodException {
Method m = null;
if (version >= 170) {
m = c.getMethod(currMethodName + "0170", _class);
} else {
m = c.getMethod(currMethodName, _class);
}
return m;
}
//判断版本工具类-如果高于或者等于当前版本就返回true 否则 false
public static boolean CheckClientVersion(String clientVersion, String version) {
try {
if (StringUtils.isEmpty(version)) {
return true;
} else {
String[] temp = version.split("\\.");
String t = "";
if (temp != null) {
for(int i = 0; i < temp.length; ++i) {
if (temp[i].length() == 1) {
if (i == 0) {
t = t + "0" + temp[i];
} else {
t = t + temp[i];
}
} else {
t = t + temp[i];
}
if (i == temp.length - 1 && t.length() == 3) {
t = t + "0";
}
}
}
if (t.length() > clientVersion.length()) {
return false;
} else if (t.charAt(0) > clientVersion.charAt(0)) {
return false;
} else if (t.charAt(0) < clientVersion.charAt(0)) {
return true;
} else if (t.charAt(1) > clientVersion.charAt(1)) {
return false;
} else if (t.charAt(1) < clientVersion.charAt(1)) {
return true;
} else if (t.charAt(2) > clientVersion.charAt(2)) {
return false;
} else if (t.charAt(2) < clientVersion.charAt(2)) {
return true;
} else if (t.charAt(3) > clientVersion.charAt(3)) {
return false;
} else {
return t.charAt(3) < clientVersion.charAt(3) ? true : true;
}
}
} catch (Exception var5) {
return false;
}
}
private static String getVersion(String version) {
String[] temp = version.split("\\.");
String t = "";
if (temp != null) {
for(int i = 0; i < temp.length; ++i) {
if (temp[i].length() == 1) {
if (i == 0) {
t = t + "0" + temp[i];
} else {
t = t + temp[i];
}
} else {
t = t + temp[i];
}
if (i == temp.length - 1 && t.length() == 3) {
t = t + "0";
}
}
}
return t;
}
public static boolean VersionSort(String oldVersion, String newversion) {
try {
newversion = getVersion(newversion);
oldVersion = getVersion(oldVersion);
if (newversion.length() > oldVersion.length()) {
return false;
} else if (newversion.charAt(0) > oldVersion.charAt(0)) {
return false;
} else if (newversion.charAt(0) < oldVersion.charAt(0)) {
return true;
} else if (newversion.charAt(1) > oldVersion.charAt(1)) {
return false;
} else if (newversion.charAt(1) < oldVersion.charAt(1)) {
return true;
} else if (newversion.charAt(2) > oldVersion.charAt(2)) {
return false;
} else if (newversion.charAt(2) < oldVersion.charAt(2)) {
return true;
} else if (newversion.charAt(3) > oldVersion.charAt(3)) {
return false;
} else {
return newversion.charAt(3) < oldVersion.charAt(3) ? true : true;
}
} catch (Exception var3) {
return false;
}
}
}