R42日記スマートフォン用の表示で見るR42日記この日記は私的なものであり所属会社の見解とは無関係です。takahashikznITmediaに寄稿しました。(Javaエディタ)Eclipse毎年お馴染みのリリース時期がやって参りました。内部APIが刷新されているものの、パッと見ではそんなに変わっておりませぬ。ちなみに前回の分はこちら。́・ω・`)僕の環境では、ビルド完了までにEclipse3.7の5倍〜10倍程度の時間を要しています。コンパイルはすぐ終わるのですが、各種バリデータの動作が非常に遅いようです。業務で使用する際は、ご注意下さいませ。以下のURLの適当日本語訳をどうぞ。http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/news/eclipse-news-part2.htmlリンク先には画像がいっぱいあるので、それを見ながら読んだほうが理解が早いかと思います。(クイックアウトラインでキャメルケースをサポート)Ctrl+O(クイックアウトライン)やCtrl+T(クイック階層)でキャメルケースをサポートしました。『型を開く』やコードアシストのダイアログと同じノリで使えます。(クイックアシストで拡張forへ変換)拡張for構文へさくっと変換するクイックアシストを使えるようになりました。デフォルトキーバインドではCtrl+1で発動します。(伝統の)カウンタを使ったforループや、Iteratorを使ったループへ変換する機能もあるようです。Editor(括弧のマッチングにまつわる改善)現在のカーソル位置の、一つ外側の括弧を強調表示できるようになりました。括弧の近傍にカーソルを置かなくても、いつでも発動できるようになりました。三回目:最初のカーソル位置へ戻るです。括弧の前後どちらにおいても判定できるようになりました。(これまでは括弧の直前にカーソルを置かないとダメだった...ハズ)あと、波括弧の開始位置付近のソースをホバーで表示できるようになりました。長いコードブロックの場合、『この括弧ってどこに対応してるんだっけ?』を、いちいちカーソルを戻さなくても確認できるようになったということです。(Javadocのホバーで引数のアノテーションを表示)サブタイトルそのまんま。個別に関連付けを行えるようになりました。ソースがない場合はデコンパイラで開く、という使い方を想定しています。proposals(誤り訂正候補のデフォルト実装を追加)クイックアシストやクイックフィックスで、コードの誤りを訂正するための候補を表示するような機能を作る際、その足場となるデフォルト実装が追加されました。プラグインを開発する際などに楽ができるようです。(package-info.javaでのコンテンツ・アシスト)package-info.javaでコンテンツ・アシストが効くようになりました。パッケージにつけるアノテーションをアシストするような使い方を想定しています。ところで翻訳とは関係ないですが、package-info.javaの便利な使い方パターンって有るのでしょうか。使い方のパターンがあっても良いような気がします。(コンパイラのエラー・警告を無視するソースフォルダを指定可能に)Javaコンパイラのエラー・警告を無視するフォルダを個別に指定できるようになりました。除外指定すると幸せになれるのではないでしょうか。設定できる内容が増えたりしています。コンパイラは、次の2つの観点からswitch文を解析できるようになっています。Enumで、case文がEnum定数を全網羅しているか否かdefault文があるか否か(FindBugsなどでとっくの昔にフォローされているので、今更感はありますが...)オプションで指定すると、Enumの値を全網羅していないswitch文において、たとえdefault文があっても警告が出るように出来ます。これにより、Enum定数を追加した際などに、case文の追加忘れを予防できます。(リソースリーク検知が可能に)コンパイラでリソースリークを検知できるようになりました。同一スコープ内でクローズしていない場合、警告が出るようになります。『潜在的リークを検知』というのも追加されていまして、これはclose()が呼ばれないパスが存在しないかどうか検査するというものです。状況によってはそれがスキップされてしまう可能性が無いか検査するということです。この『潜在的リーク検知』、リソースがメソッド間で共有されている場合においても、うまいこと判定してくれるらしいです。実行パスを見てくれる(『潜在的リークを検知』する)のですが、インスタンスフィールドとして保持しているリソースの場合、クローズを呼ばなくても良しとするという調整が行われています。(そういう仕様のプログラムを書くケースが実際にある為)また、実際はリソースリークにならないケースも認識できるようです。実際はクローズする必要が無いものです。いう輩は検知対象外にしてくれます。具体的にどういうケースが当てはまるかはリンク先を参照するように(手抜き)。(バッチコンパイラの警告オプション)バッチコンパイラ(訳注:コマンドラインコンパイラ、つまりecjのことだと思う)の警告オプションが追加になってます。folder(コンパイル結果の出力先が別のソースフォルダだった場合に警告)タイトル通り。analysis(宣言ベースのnull解析)アノテーションを使って宣言的にプログラミングすることで、null解析ができるようになりました。ま、詳しくはリンク先の画像を確認すれば一発でわかると思いますが...(手抜きパート2)org.eclipse.jdt.annotationパッケージの@Nullableや@NonNullをメソッドのメソッドの引数や戻り値に付けまくっておけば、後はコンパイラがヨロシクやってくれます。多少不自由が残っているけどそれは許してね、とのこと。いやGoogleも似たようなモノを出してますよね、コレ。(null解析に関連するバッチコンパイラのオプション)引数のwarnオプションにnullAnnotを渡すと、null解析が発動します。アグレッシブに行きたい気分の時は、-nonNullByDefaultを指定するとNonNullが全ての箇所で指定されているように振る舞います。全てのパッケージでNonNullByDefaultの指定があるかチェックできます。これは要するに、全ての要素についてNonNullなのかNullableなのかを指定済みであることをチェックできるということです。(Eclipseのアサーション機構をJavaのassert文と同様に)null解析について、EclipseのAssertを使っても、javaのassert文同様の解釈を行うようになりました。従来のEclipseはpがnon-nullであると判断する機能を持っています。これをEclipseのAssert機能を使った場合でも適用するように拡張したということです。ビルド済みのインデックスをEclipseに渡せるようになったらしいです。その結果として、各種検索が速くなるようです。新バージョンリリースです。イベントがそろそろやって参ります。メイン...2014-10-15Java8u25がリリースされるもコンパイラのバグは解消されずJava8u25がリリースされています。画像やURLがリンク切れになっています。instrument"になる件lambda-factoryをOpenJ9で動かすおまじない月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。