请帮我完成我的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;
}
Run Code Online (Sandbox Code Playgroud)
我将int设置为什么代码来确定如果我正在处理一个数组,如果它的长度为零,它将返回true?无论类型是int [],Object [],我希望它能工作.(大家都知道,我可以告诉你,如果你把一个int []放到一个Object []变量中,它会抛出异常.)
您可以使用辅助方法getLength(Object)从java.reflect.Array:
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;
}
Run Code Online (Sandbox Code Playgroud)
请注意,您无法使用
boolean empty = (someString == "");
Run Code Online (Sandbox Code Playgroud)
因为那不安全 要比较字符串,请使用String.equals(String),或者在这种情况下,只需检查长度是否为零.