我需要确定ArrayList中的元素是否具有特定值。这是我正在尝试的当前方式。
public static boolean hasDwgNamedReference(Object valueDWG){
boolean b = false;
String dwgName = "dwg_";
if(valueDWG == null){
b = false;
}
else {
String checkNamedRef = Arrays.toString((Object[]) valueDWG).substring(1, 5);
System.out.println("checkNamedRef " + checkNamedRef + "\n");
if(checkNamedRef.equals(dwgName)){
b = true;
}
}
return b;
}// end hasDwgNamedReference
我很确定问题出在
上 String checkNamedRef = Arrays.toString((Object[]) valueDWG).substring(1, 5);
你认为我需要增加ArrayList并检查每个元素吗?
答案 0 :(得分:0)
嗯,首先,您不需要包含第一个“if”语句。 b已经为假,因此再次将其设置为false是不必要的。
如果对对象使用Arrays.toString()方法,则可能会获得对象的标识,或者它所拥有的内存中的地址。如果你试图通过equals方法与checkNamedRef进行比较,你可能会比较一个地址和一个字符串,这将永远不会给你你正在寻找的真实。