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 は既に false であるため、再度 false に設定する必要はありません。

オブジェクトで Arrays.toString() メソッドを使用すると、オブジェクトのID、またはオブジェクトが保持するメモリ内のアドレスを取得できます。equals メソッドを介して checkNamedRef と比較しようとすると、アドレスと文字列を比較している可能性があり、探している真の結果が得られません。

于 2013-07-18T15:12:29.940 に答える