Java反射遍历数组
日志中有时候需要查看数组中的值,但是重载很多的打印函数,觉得很别扭。所以想通过反射,获取数组中的值,打印出来。
Java提供了数组反射操作的类,之前没有关注过,提供的方法简单易用。
public static String toString(Object obj) { if (obj == null) return "null"; // 1.对象为空 Class<?> objClz = obj.getClass(); if (objClz.isArray()) { int len = Array.getLength(obj); if (len > 0) { // 2.数组长度为0 StringBuffer buf = new StringBuffer(); buf.append("["); for (int i = 0; i < len; i++) { buf.append(Array.get(obj, i)).append(","); } buf.replace(buf.length() - 1, buf.length(), "]"); return buf.toString(); } else { // 3.数组长度不为0 return "[]"; } } else { // 4.不是数组 return obj.toString(); } }
简单的使用示例:
public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; String[] arr2 = {"zhangsan", "lisi"}; System.out.println(toString(arr)); System.out.println(toString(arr2)); }
浙公网安备 33010602011771号