GroovyはJavaの改善として常に私を惹きつけてきました。 実際、ほとんどすべてのJavaコードはGroovyの有効なコードになります。 Groovy-wayで何かを行う方法を覚えていない場合は、Javaの慣習的な方法でいつでも書くことができます。覚えている場合は、ここにクロージャー、便利なリスト、 その他多くの素晴らしいものがあります。
Groovyを使用して製品コードを開発できなかった唯一のことは、多くの場合にコンパイルエラーがなかったことです。 たとえば、存在しないメソッドを呼び出す場合、存在しない変数などを参照します。
多くのGroovyフレームワークおよびライブラリーでは、これは本当に必要です(たとえば、Groovy でXMLを操作するを参照)が、通常のコードを書くと、真剣に悩まされます。
だから、ついにGroovy 2.0では、言う機会がありました-このクラスの型、メソッドと変数の存在をチェックしてください!
たとえば、次のクラスをご覧ください。
![画像](https://habrastorage.org/getpro/habr/post_images/a87/6e6/421/a876e64219719cf96ede16dbb4de5522.jpg)
問題なくコンパイルします。
しかし、追加する場合
@TypeChecked
(このアノテーションはクラスまたはメソッドに設定できます)、エラーが発生します:
![画像](https://habrastorage.org/getpro/habr/post_images/7b2/ba9/92e/7b2ba992ef47fdc551150d16a6b0bde4.jpg)
また、
@CompileStatic
アノテーションを使用してクラスの静的コンパイルを
@CompileStatic
と、チェックが自動的にオンになります。
![画像](https://habrastorage.org/getpro/habr/post_images/e33/a2c/f51/e33a2cf5126ae05e9c7bf8f18277bf2a.jpg)
これで、Javaで作成されたすべてのものをGroovyで作成でき、コンパイラーが見逃した問題を恐れることはありません。
チェックの完全なリストはここにあります 。
デフォルトの型チェックを行い、注釈による動的型付けを行ったら素晴らしいでしょう...