私はいくつかのJMockitの例を読んでいて、次のコードを見つけました。
final List<OrderItem> actualItems = new ArrayList<~>();
汎用識別子のチルダとはどういう意味ですか?私はそれが単項ビット単位のNOT演算子であることを知っていますが、ここにはオペランドがありません。
また、私はそれをコンパイルしようとしましたが、エラーが発生しました。何かが足りないだけですか?
これは、「宣言と同じ」の省略形です。
いくつかのIDE、たとえばIntelliJもこれを使用します。
ディスク上のファイルにはこの表記はありません。これはIDE GUIでの圧縮のみです。
チルダがなかった場合、コードはすでにJava 7。 Java 7ではダイヤモンド演算子 したがって、これは正当ですJava code:
Map<String, List<String>> map = new HashMap<>();
(ただし、この構文にはチルダはありません)
IntelliJ IDEAでは、~
ここに:
Set<String> associations = new LinkedHashSet<~>();
は、String
を意味します。これは、左側の宣言と同じです。
これは、タイプが何であれ、この場合はOrderItemを意味する省略形だと思います。