package jef.tools.support;
/**
* Java 基本语言和语法工具
*
* @author Administrator
*
*/
public class LangUtils {
public static final int NULL_IS_MAXIMUM = 0;
public static final int NULL_IS_MINIMUM = 1;
/**
* 获取两个对象中较小的
*
* @param v1
* @param v2
* @param nullSupport
* ,取常量NULL_IS_MAXIMUM 或者 NULL_IS_MINIMUM
* @return
*/
public static <T extends Comparable<T>> T min(T v1, T v2, int nullSupport) {
if (v1 == v2)
return v1;
if (v1 == null) {
return nullSupport == NULL_IS_MINIMUM ? v1 : v2;
}
if (v2 == null) {
return nullSupport == NULL_IS_MINIMUM ? v2 : v1;
}
int v = v1.compareTo(v2);
return (v > 0) ? v2 : v1;
}
/**
* 获取两个对象中较大的
*
* @param v1
* @param v2
* @param nullSupport
* ,取常量NULL_IS_MAXIMUM 或者 NULL_IS_MINIMUM
* @return
*/
public static <T extends Comparable<T>> T max(T v1, T v2, int nullSupport) {
if (v1 == v2)
return v1;
if (v1 == null) {
return nullSupport == NULL_IS_MAXIMUM ? v1 : v2;
}
if (v2 == null) {
return nullSupport == NULL_IS_MAXIMUM ? v2 : v1;
}
int v = v1.compareTo(v2);
return (v < 0) ? v2 : v1;
}
// public static void main(String[] args) {
// System.out.println(max(32,null));
// }
/**
* 返回八个原生类型的默认数值(的装箱类型)
*
* @param javaClass
* @return
*/
public static Object defaultValueOfPrimitive(Class<?> javaClass) {
if (javaClass == Integer.TYPE) {
return 0;
} else if (javaClass == Short.TYPE) {
return (short) 0;
} else if (javaClass == Long.TYPE) {
return 0L;
} else if (javaClass == Float.TYPE) {
return 0f;
} else if (javaClass == Double.TYPE) {
return (double) 0;
} else if (javaClass == Byte.TYPE) {
return (byte) 0;
} else if (javaClass == Character.TYPE) {
return (char) 0;
} else if (javaClass == Boolean.TYPE) {
return Boolean.FALSE;
} else {
throw new IllegalArgumentException(javaClass + " is not Primitive Type.");
}
}
}