2

string のリストを返す基準がありますList<String>

私は方法で以下を持っています

 return criteria.list();

しかし、コードは示しています

 Type safety: Unchecked cast from List to List<String>

追加を避け@SuppressWarnings("unchecked") 、型が安全に変換されていることを確認するために (実際に変換する必要があるかどうかはわかりません)、この質問を読み、コードにソリューションを追加しようとしました

 return Collections.checkedList(criteria.list(),List<String>);

しかし、次のように別のエラーが表示されます。

Multiple markers at this line
    - Type safety: Unchecked cast from List to List<String>
    - Syntax error on token ">", Expression expected after this 
     token
  • 本当に Collections.checkedList を使用する必要があるかどうかわかりません
  • 使うとしたら、どうやって使うの?

ありがとう

4

2 に答える 2

1

•本当に Collections.checkedList を使うべきかどうかわからない

標準実装では実際には必要ありません。ほとんどがデバッグ用である場合、または不明なリストを受け取り、タイプセーフであることを確認する必要がある場合 (通常はサードパーティのコードのため)、またはジェネリックが使用されていて、この時点でコードが正しいことを確認する必要があります。これは、ここで例外をスローし、正しいタイプではないものを特定するためです。

•使用する場合、どのように使用しますか?

Collections.checkedListタイプセーフではないリストとリストが必要なクラスの 2 つの引数を実装する場合、この場合はそうでString.classはありません。List<String>

return Collections.checkedList(criteria.list(), String.class);
于 2015-04-22T01:05:45.480 に答える
1

メソッドcriteria.list()が を返す場合List<String>、正しいステートメントは次のようになります。

return Collections.checkedList(criteria.list(), String.class);

同様のケースが他のオブジェクトにも当てはまります。たとえば、メソッドが type のカスタム オブジェクトを返す場合Criterion、答えは次のようになります。

return Collections.checkedList(criteria.list(), Criterion.class);
于 2015-04-22T00:53:20.313 に答える