给定一个Object是任何类型的数组,如何测试它在Java中是空的?

前端之家收集整理的这篇文章主要介绍了给定一个Object是任何类型的数组,如何测试它在Java中是空的?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请帮我填写我的isEmpty方法
public static boolean isEmpty(Object test){
    if (test==null){
        return true;
    }
    if (test.getClass().isArray()){
        //???
    }
    if (test instanceof String){
        String s=(String)test;
        return s=="";
    }
    if (test instanceof Collection){
        Collection c=(Collection)test;
        return c.size()==0;
    }
    return false;
}

我将使用什么代码来确定如果我正在处理一个数组,如果它的长度为零,它将返回true?我希望它的工作,无论类型是否是int [],Object []. (只是你知道,我可以告诉你,如果你把一个int []放入一个Object []变量,它会抛出一个异常.)

解决方法

您可以使用 java.reflect.Array中的助手方法getLength(Object):
public static boolean isEmpty(Object test){
    if (test==null){
        return true;
    }
    if (test.getClass().isArray()){
        return 0 == Array.getLength(test);
    }
    if (test instanceof String){
        String s=(String)test;
        return s.isEmpty(); // Change this!!
    }
    if (test instanceof Collection){
        Collection c=(Collection)test;
        return c.isEmpty();
    }
    return false;
}

请注意,您不能使用

boolean empty = (someString == "");

因为那是不安全的.为了比较字符串,请使用String.equals(String),或者在这种情况下,只需检查长度是否为零.

原文链接:https://www.f2er.com/java/124059.html

猜你在找的Java相关文章