角度ブラケットのチルドは、Javaジェネリッククラスを作成するときに何を意味しますか?
-
28-10-2019 - |
質問
私はいくつかのjmockitの例を読んでいて、このコードを見つけました:
final List<OrderItem> actualItems = new ArrayList<~>();
ジェネリック識別子のチルドはどういう意味ですか?私はそれがオペレーターではない単一のビットワイズであることを知っていますが、ここにはオペランドが見えません。
また、私はそれをコンパイルしようとして、エラーが発生しました。何かが足りないのですか?
解決
「宣言と同じ」の略記です。
いくつかのIDES、たとえばIntellijもこれを使用しています。
ディスク上のファイルにはこの表記法はありません。これはIDE GUIの圧縮にすぎません。
他のヒント
チルドがなければ、コードはすでにJava 7だったと思います。 Java 7を使用すると、ダイヤモンドオペレーターが許可されます したがって、これは合法的なJavaコードになります:
Map<String, List<String>> map = new HashMap<>();
(しかし - この構文を伴うチルドはありません)
Intellijのアイデアでは、 ~
ここ:
Set<String> associations = new LinkedHashSet<~>();
意味 String
, 、これは左側の宣言と同じです。
この場合、それはタイプが何であれ、意味するのは速記だと思います OrderItem.
所属していません StackOverflow