toArray:可以简便的构建一个数组。但是注意下面的区别:
Integer[] integers = ArrayUtils.toArray(1, 2, 3); Serializable[] serializables = ArrayUtils.toArray(1, 2, "3");
nullToEmpty:将null转换为空的数组,如果数组不为null,返回原数组,如果数组为null,返回一个空的数组
toObject/toPrimitive:这两个方法很有用 可以实现比如int[]和Integer[]数组之间的互转
Integer[] inArr = new Integer[]{1, 2, 3}; int[] ints = ArrayUtils.toPrimitive(inArr); Integer[] integers = ArrayUtils.toObject(ints);
toStringArray:同上。这个方法是将Object数组转换成String数组。
public static void main(String[] args) { Integer[] inArr = new Integer[]{1, 2, 3}; int[] ints = new int[]{1,2,3}; String[] strings = ArrayUtils.toStringArray(inArr); //ArrayUtils.toStringArray(ints); //编译报错哟 }
需要注意:
public static void main(String[] args) { Integer[] inArr = new Integer[]{1, 2, null}; //String[] strings = ArrayUtils.toStringArray(inArr); //如果里面有null元素,会报错的,所以我们可以用下面这个方法 把null转成指定的值即可 String[] strings = ArrayUtils.toStringArray(inArr,""); }
getLength、isSameLength:有时候建议使用。因为它是对null安全的。null的length为0
CharEncoding:过时。被Java自己的java.nio.charset.StandardCharsets取代
CharUtils – 用于操作char值和Character对象
toCharacterObjec/toChart:把char或者String转为一个Character对象。互转。Character,valueOf()很多时候也能达到这个效果
toIntValue:把char和Character转为对应的int值
isAscii系列:判断该字符是否是Ascii码
ClassPathUtils:处理类路径的一些工具类
toFullyQualifiedName(Class<?> context, String resourceName) 返回一个由class包名+resourceName拼接的字符串
public static void main(String[] args) { String fullPath = ClassPathUtils.toFullyQualifiedName(Integer.class, ""); System.out.println(fullPath); //java.lang. //fullPath = ClassPathUtils.toFullyQualifiedName(Integer.class.getPackage(), "Integer.value"); fullPath = ClassPathUtils.toFullyQualifiedName(Integer.class, "Integer.value"); System.out.println(fullPath); //java.lang.Integer.value }
toFullyQualifiedName(Package context, String resourceName) 返回一个由class包名+resourceName拼接的字符串
toFullyQualifiedPath(Class<?> context, String resourceName) 返回一个由class包名+resourceName拼接的字符串
toFullyQualifiedPath(Package context, String resourceName) 返回一个由class包名+resourceName拼接的字符串
ClassPathUtils.toFullyQualifiedPath(StringUtils.class, "StringUtils.properties") = "org/apache/commons/lang3/StringUtils.properties"
ClassUtils – 用于对Java类的操作(有很多方法还是挺有用的)
- getShortClassName:
public static void main(String[] args) { System.out.println(int[].class.getSimpleName()); //int[] System.out.println(ClassUtils.getShortClassName(int[].class)); //int[] System.out.println(ClassUtils.getShortClassName(String.class)); //String System.out.println(ClassUtils.getShortClassName(ArrayList.class)); //ArrayList System.out.println(ClassUtils.getShortClassName("List")); //List }
- getPackageName:获取包名
public static void main(String[] args) { System.out.println(ClassUtils.getPackageName(int[].class)); //"" System.out.println(ClassUtils.getPackageName(String.class)); //java.lang }
- getAllSuperclasses:获取到该类的所有父类 注意:只是父类 不包含接口
public static void main(String[] args) { List<Class<?>> allSuperclasses = ClassUtils.getAllSuperclasses(ArrayList.class); System.out.println(ArrayUtils.toString(allSuperclasses)); //[class java.util.AbstractList, class java.util.AbstractCollection, class java.lang.Object] } public static void main(String[] args) { List<Class<?>> allSuperclasses = ClassUtils.getAllSuperclasses(ArrayList.class); System.out.println(ArrayUtils.toString(allSuperclasses)); //[class java.util.AbstractList, class java.util.AbstractCollection, class java.lang.Object] allSuperclasses = ClassUtils.getAllSuperclasses(Object.class); System.out.println(ArrayUtils.toString(allSuperclasses)); //[] }
- getAllInterfaces:同上。但此方法指的是接口
- convertClassNamesToClasses/convertClassesToClassNames 见名知意
public static void main(String[] args) { List<Class<?>> classes = ClassUtils.convertClassNamesToClasses(Arrays.asList("java.lang.Integer","java.lang.int")); System.out.println(classes); //[class java.lang.Integer, null] }
- isPrimitiveOrWrapper、isPrimitiveWrapper 、primitiveToWrapper、primitivesToWrappers、wrapperToPrimitive判断是基本类型还是包装类型
public static void main(String[] args) { System.out.println(ClassUtils.isPrimitiveOrWrapper(Integer.class)); //true System.out.println(ClassUtils.isPrimitiveOrWrapper(int.class)); //true //检测是否是包装类型 System.out.println(ClassUtils.isPrimitiveWrapper(Object.class)); //false 注意 此处是false System.out.println(ClassUtils.isPrimitiveWrapper(Integer.class)); //true System.out.println(ClassUtils.isPrimitiveWrapper(int.class)); //false //检测是否是基本类型 System.out.println(Object.class.isPrimitive()); //false 注意 此处也是false System.out.println(Integer.class.isPrimitive()); //false System.out.println(int.class.isPrimitive()); //true }