このコードは、以下のように、Object[] より特定の型のコレクションで toArray メソッドを呼び出す結果をキャストしています。

String[] getAsArray(Collection<String> c) {
  return (String[]) c.toArray();
}

これは通常、ClassCastException をスローして失敗します。 ほとんどすべてのコレクションの toArray メソッドは、Object[] を返します。 Collection オブジェクトは宣言された総称型コレクションの参照がないので、本当に何もできません。 コレクションから特定の型の配列を得る正しい方法は、c.toArray(new String[]); または c.toArray(new String[c.size()]); (後者はわずかにより効率的です) を使うことです。 これに対する1つの共通の知られている例外があります。 Arrays.asList(...)によって返されるリストの toArray() メソッドは、共変な配列を返します。 たとえば、Arrays.asArray(new String[] { "a" }).toArray()String [] を返します。 FindBugs はそのようなケースを検出して抑止しようとしますが、いくつか見落とすかもしれません。