今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作。
下面展示了一部分代码:
public static boolean isEmpty(Object object) {
if(object == null){
return true;
//数组判空
if (object.getClass().isArray()) {
Object[] obj = (Object[])object;
return obj.length == 0;
在外部,我传进来一个数组后,可以看到直接强转为数组。
我测试了下,转换异常。
后来我自己封装了下,正常的操作应该是这样的:
public static boolean isEmpty(Object object) {
if(object == null){
return true;
//数组判空
if (object.getClass().isArray()) {
int len = Array.getLength(object);
Object[] obj = new Object[len];
for(int i = 0; i < len; i++) {
obj[i] = Array.get(obj, i);
return obj.length == 0;
最后测试通过。
今天在使用一个别人写的工具类,这个工具类,主要是判空操作,包括集合、数组、Map等对象是否为空的操作。下面展示了一部分代码:public static boolean isEmpty(Object object) { if(object == null){ return true; } //数组判空 if (object.getClass().isArray()) { Object[] obj = (Object[])object;
为什么要把Object类型转数组呢?
就我自己的经历来说,是我在调试的时候,已经知道我的Object对象里存的是个数组,而且直接调用toString()方法是不能正确输出数组的值的,不然我为什么不转成int呢?
转换方法如下(因为我的是个byte数组,所以加了个byte强转)
public static byte[] objectToBytes(Object obj) throws IOException {
int length = Array.getLength(obj);
byte[]
public static <T> T[] convertArray(Class<T> targetType, Object[] arrayObjects) {
if (targetType == null) {
return (T[]) arrayObject...
Java可以通过JSON库将JSON字符串转换为数组对象。这里以Jackson库为例进行讲解。
首先,需要引入jackson-core和jackson-databind的jar包,并在代码中导入相应的类:
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
接着,可以定义一个JSON字符串,以便后续进行转换:
String jsonStr = "[{\"id\":1,\"name\":\"Alice\"},{\"id\":2,\"name\":\"Bob\"},{\"id\":3,\"name\":\"Charlie\"}]";
然后,可以使用ObjectMapper类来将JSON字符串转换为数组对象:
ObjectMapper objectMapper = new ObjectMapper();
try {
// 将JSON字符串转换为数组对象
Object[] jsonArray = objectMapper.readValue(jsonStr, Object[].class);
// 遍历数组对象并输出其中每一个元素
for (Object obj : jsonArray) {
System.out.println(obj.toString());
} catch (JsonProcessingException e) {
e.printStackTrace();
通过上述代码,可以将JSON格式的字符串转换为Java数组对象,并对其进行遍历输出。
需要注意的是,如果JSON字符串中的数据类型不一致或存在缺失字段等情况,可能会出现转换异常。此时,可以通过对JSON字符串进行检测或通过try-catch进行异常处理来解决问题。