0

我需要确定 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 并检查每个元素吗?

4

1 回答 1

0

好吧,首先,您不需要包含第一个“if”语句。b 已经为假,因此无需再次将其设置为假。

如果您在对象上使用 Arrays.toString() 方法,您可能会获得该对象的标识,或者它所拥有的内存地址。如果您尝试通过 equals 方法与 checkNamedRef 进行比较,您可能会比较地址和字符串,这永远不会为您提供您正在寻找的真实内容。

于 2013-07-18T15:12:29.940 回答