139

私はいくつかの JMockit の例を読んでいて、次のコードを見つけました。

final List<OrderItem> actualItems = new ArrayList<~>();

ジェネリック識別子のチルダは何を意味しますか? 単項ビット単位の NOT 演算子であることはわかっていますが、ここにオペランドがありません。

また、コンパイルしようとしたところ、エラーが発生しました。何か足りないだけですか?

4

4 に答える 4

168

「宣言と同じ」の省略形です。

IntelliJ などの一部の IDE もこれを使用します。

ディスク上のファイルにはこの表記がありません。これは、IDE GUI での圧縮のみです。

于 2011-02-03T15:12:48.253 に答える
19

チルダがなければ、コードはすでに Java 7 だったと思います。Java 7 ではひし形演算子が許可されているため、これは合法的な Java コードです。

Map<String, List<String>> map = new HashMap<>();

(ただし、この構文にはチルダはありません)

于 2011-02-03T15:51:39.313 に答える
2

タイプが何であれ、この場合はOrderItemを意味する略語だと思います。

于 2011-02-03T15:12:06.593 に答える