角度ブラケットのチルドは、Javaジェネリッククラスを作成するときに何を意味しますか?

StackOverflow https://stackoverflow.com/questions/4887876

質問

私はいくつかの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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top