blob: 0ef5e52cda6d9b178fe9795a494db0a423ccdc49 [file] [log] [blame]
//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
= NetBeans IDE Javaエディタでの「検査と変換」を使用したリファクタリング
:jbake-type: tutorial
:jbake-tags: tutorials
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDE Javaエディタでの「検査と変換」を使用したリファクタリング - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDE Javaエディタでの「検査と変換」を使用したリファクタリング
NetBeans IDE Javaエディタは、選択された範囲のファイルに対して一度に様々な検査や変換を実行するためのリファクタリング・ツールである「検査と変換」機能を備えています。また、これを使用すると、ユーザーがカスタム検査を定義することもできます。
このチュートリアルでは、リファクタリングを含む検査や事前定義された一連の検査を使用してコードのレビューを実行したり、構成を管理したり、カスタム検査を作成したりする方法について学習します。
== 内容
image::images/netbeans-stamp.png[title="このページの内容は、NetBeans IDE 8.0に適用されます"]
* <<setup,チュートリアルの環境の設定>>
* <<run,検査の実行>>
* <<configuration,構成の使用>>
* <<migrate5,JDK 5に移行>>
* <<convert,JDK 7に移行>>
* <<migrate8,JDK 8に移行>>
* <<organize,インポートの編成>>
* <<create,カスタム検査の管理>>
* <<summary,サマリー>>
* <<seealso,関連項目>>
== 要件
*このチュートリアルを完了するには、次のソフトウェアとリソースが必要です。*
|===
|ソフトウェアまたはリソース |必須バージョン
|link:http://netbeans.org/downloads/index.html[+NetBeans IDE+] |バージョン8.0
|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit+] (JDK) |バージョン7または8
|===
== チュートリアルの環境の設定
上に一覧表示されている必要なソフトウェアに加えて、link:https://netbeans.org/projects/samples/downloads/download/Samples/Java/inspecttransform.zip[+InspectTransform.zip+]ファイルをNetBeansプロジェクト・フォルダに解凍し、次のようにNetBeans IDEで開くようにしてください。
image::images/proj.png[]
== 検査の実行
「検査と変換」ダイアログ・ボックス(「リファクタリング」>「検査と変換」)にある「単一の検査」オプションは、特定のリファクタリング変換に関連した様々な検査を提供します。このような操作の完全なリストは、「単一の検査」オプションの右にある「参照」ボタンをクリックすると、「検査の管理」ダイアログ・ボックスで表示されます。
[.feature]
--
image::images/manage-inspections-small.png[role="left", link="images/manage-inspections.png"]
--
「検索」フィールドを使用すると、キーワード検索を使用して、必要な検査が使用できるかどうかを確認できます。たとえば、 ``演算子`` を検索すると、いくつかの検査が見つかります。
[.feature]
--
image::images/search-small.png[role="left", link="images/search.png"]
--
検査はすべて、「検査の管理」ダイアログ・ボックスの「説明」フィールドに説明が示されています。
*検査を実行し、既存の検査を適用するには:*
1. 「プロジェクト」ウィンドウで、 ``InspectTransform.java`` ファイルを選択します。
2. IDEのメニューから「リファクタリング」>「検査と変換」を選択します。
3. 「検査と変換」ダイアログ・ボックスで、「単一の検査」オプションを選択し、「参照」をクリックします。
4. 「検査の管理」ダイアログ・ボックスで、「代入の問題」ノードの「 ``代入演算子で置換できる代入`` 」検査を選択します。
5. OK」をクリックして、「検査の管理」ダイアログ・ボックスを閉じます。
6. 「検査と変換」ダイアログ・ボックスで「検査」をクリックします。
提案されたリファクタリングの変更がプレビュー・パネルに表示されます。
[.feature]
--
image::images/single-inspection-small.png[role="left", link="images/single-inspection.png"]
--
. 必要に応じて、「リファクタリングを実行」をクリックして変更を適用します。
<<top,先頭>>
== 構成の使用
まとめてグループ化された一連のリファクタリングによって、対象範囲(たとえば、1つのクラスまたは複数のクラス、パッケージ、プロジェクト)に対して実行できる構成が形成されます。IDEでは、次の2つの構成が事前に定義されています。
* <<migrate5,JDK 5に移行>>
* <<convert,JDK 7に移行>>
* <<migrate8,JDK 8に移行>>
* <<organize,インポートの編成>>
=== JDK 5への移行
IDEでデフォルトで使用できる ``JDK 5に移行」`` 構成には、静的インポート、JDK 5 forループの使用、不要なボックス化およびボックス化解除、文字列のswitchアプリケーションなどのリファクタリング操作が組み込まれています。
[.feature]
--
image::images/jdk5-conf-small.png[role="left", link="images/jdk5-conf.png"]
--
*注意:* 構成内のリファクタリングのリストは、「検査の管理」ダイアログ・ボックスの「検査」リストで、 ``JDK移行サポート」`` ノードの下にある項目を選択および選択解除することによって変更できます。
=== JDK 7に移行
IDEでデフォルトで使用できる ``JDK 7に移行」`` 構成には、ダイヤモンド演算子の使用方法、try-with-resourcesへの変換、マルチ・キャッチの使用方法、文字列のswitchアプリケーションなどのリファクタリング操作が組み込まれています。
[.feature]
--
image::images/jdk7-conf-small.png[role="left", link="images/jdk7-conf.png"]
--
*注意:* 構成内のリファクタリングのリストは、「検査の管理」ダイアログ・ボックスの「検査」リストで、 ``JDK移行サポート」`` ノードの下にある項目を選択および選択解除することによって変更できます。
*デフォルトの ``JDK 7に移行」`` 構成を実行して適用するには:*
1. 「プロジェクト」ウィンドウで、 ``PredefinedSet.java`` ファイルを選択します。
2. IDEのメニューから「リファクタリング」>「検査と変換」を選択します。
3. 「検査と変換」ダイアログ・ボックスで、「構成」オプションを選択し、ドロップダウン・リストから ``JDK 7に移行」`` の一連の検査を選択します。
4. 「検査」をクリックします。
そのコードをJDK 7構文に変換する変更がプレビュー・パネルに表示されます。
[.feature]
--
image::images/jdk7-ref-small.png[role="left", link="images/jdk7-ref.png"]
--
. 必要に応じて、「リファクタリングを実行」をクリックして変更を適用します。
=== JDK 8に移行
IDEでデフォルトで使用できる ``JDK 8に移行」`` 構成には、ラムダまたはメンバー参照変換、静的インポート、マルチ・キャッチの使用方法、文字列のswitchアプリケーションなどのリファクタリング操作が組み込まれています。
[.feature]
--
image::images/jdk8-conf-small.png[role="left", link="images/jdk8-conf.png"]
--
*注意:* 構成内のリファクタリングのリストは、「検査の管理」ダイアログ・ボックスの「検査」リストで、 ``JDK移行サポート」`` ノードの下にある項目を選択および選択解除することによって変更できます。
=== インポートの編成
``インポートの編成`` 」構成を使用すると、インポート文がコードに編成されている方法を検査し、必要に応じてそのコードをリファクタリングできます。デフォルトでは、インポート文が指定されたコード・スタイル・ルールに対応しているかどうかをチェックする単一の検査が含まれています。
*注意:* インポート文のコード・スタイル・ルールを構成するには:
1. IDEのメイン・ツールバーから「ツール」>「オプション」>「エディタ」>「フォーマット」を選択します。
2. 「言語」ドロップダウン・リストで「Java」を選択します。
3. 「カテゴリ」ドロップダウン・リストで「インポート」を選択します。
4. 必要に応じて、使用可能なオプションを指定します。
[.feature]
--
image::images/org-imports-small.png[role="left", link="images/org-imports.png"]
--
. OK」をクリックして編集を保存します。
*デフォルトの「 ``インポートの編成`` 」構成を実行して適用するには:*
1. 「プロジェクト」ウィンドウで、 ``Imports.java`` ファイルを選択します。
2. IDEのメニューから「リファクタリング」>「検査と変換」を選択します。
3. 「検査と変換」ダイアログ・ボックスで、「構成」オプションを選択し、「 ``インポートの編成`` 」項目を選択します。
4. 「検査」をクリックします。
プレビュー・パネルに、 ``Imports.java`` ファイルの「インポート」セクションを指定のコード・スタイル・ルールにあわせるために、そのセクションに対して提案された1つの出現箇所が表示されます。
[.feature]
--
image::images/imports-ref-small.png[role="left", link="images/imports-ref.png"]
--
. 必要に応じて、「リファクタリングを実行」をクリックして変更を適用します。
<<top,先頭>>
== カスタム検査の管理
カスタム検査を作成すると、どのようなコード構造を見つけ、それをどのように変換するかをIDEに指示できます。
*注意:* IDEに重複した検査が追加されないようにするために、新しい検査を作成する前に、メイン・メニューから「リファクタリング」>「検査と変換」を選択し、「管理」または「参照」のどちらかをクリックして、「検査の管理」ダイアログ・ボックスで「検索」フィールドを使用して必要な検査を検索してください。
*カスタム検査を作成するには:*
1. IDEのメニューから「リファクタリング」>「検査と変換」を選択します。
2. 「検査と変換」ダイアログ・ボックスで、「管理」または「参照」のどちらかをクリックします。
3. 「検査の管理」ダイアログ・ボックスで、「新規」をクリックします。
「検査」リスト内に ``「カスタム」>「検査」`` ノードが作成されます。
[.feature]
--
image::images/custom-hint-small.png[role="left", link="images/custom-hint.png"]
--
. (オプション)「 ``検査`` 」を右クリックしてポップアップ・メニューから「名前変更」を選択し、カスタム検査に必要な名前(たとえば、 ``MyCustomInspection`` )を指定して、[Enter]を押します。
. 「スクリプトの編集」をクリックします。「スクリプト」テキスト領域が表示されます。
[.feature]
--
image::images/script-small.png[role="left", link="images/script.png"]
--
. 「スクリプト」テキスト領域に検査の説明とコードを入力するか、または「エディタで開く」をクリックし、 ``MyCustomInspection.hint`` ファイルで同じ内容を指定します。
[.feature]
--
image::images/hint-file-small.png[role="left", link="images/hint-file.png"]
--
. 「スクリプト」テキスト領域の下にある「保存」をクリックするか、またはエディタで[Ctrl]-[S]を押して編集を保存します。
. OK」をクリックして「検査の管理」ダイアログ・ボックスを閉じるか、またはエディタで ``MyCustomInspection.hint`` ファイルを閉じます。
カスタム検査が完成し、適用する準備ができました。
*作成したカスタム検査を実行するには:*
1. IDEのメニューから「リファクタリング」>「検査と変換」を選択します。
2. 「検査と変換」ダイアログ・ボックスの「検査」リストで、検査対象のファイル、パッケージ、またはプロジェクトを指定します。または、右のボタンをクリックして「カスタム・スコープ」ダイアログ・ボックスを開き、検査対象のカスタム・コードを指定します。
3. 「単一の検査」オプションを選択し、「 ``MyCustomInspection`` 」検査を選択します。
[.feature]
--
image::images/mycustomhint-small.png[role="left", link="images/mycustomhint.png"]
--
. 「検査」をクリックします。
提案されたリファクタリングの変更がプレビュー・パネルに表示されます。
. 必要に応じて、「リファクタリングを実行」をクリックして変更を適用します。
<<top,先頭>>
== サマリー
このチュートリアルでは、「検査と変換」機能の最も頻繁に使用される方法を説明しています。この「検査と変換」機能では、プロジェクト・スコープでカスタム・リファクタリングを実行したり、IDEで開かれている複数のプロジェクトに特定のリファクタリング構成を適用したりすることもできます。
<<top,先頭>>
link:/about/contact_form.html?to=3&subject=Feedback:%20Refactoring%20with%20Inspect%20and%20Transform%20in%20the%20NetBeans%20IDE%20Java%20Editor[+このチュートリアルに関するご意見をお寄せください+]
== 関連項目
関連する資料については、次のドキュメントを参照してください。
* _NetBeans IDEによるアプリケーションの開発_link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG613[+ソース・コード分析およびリファクタリングでのヒントの使用+]
* link:http://wiki.netbeans.org/Java_Hints[+NetBeans Javaヒントの完全リスト+]
* link:http://wiki.netbeans.org/JavaDeclarativeHintsDescriptionSketch[+NetBeansのJava宣言型のヒントの説明+]
* link:code-inspect.html[+NetBeans IDE Javaエディタでの静的コード分析+]
* link:http://wiki.netbeans.org/Refactoring[+リファクタリングの単純化+]
* link:http://platform.netbeans.org/tutorials/nbm-java-hint.html[+NetBeans Javaヒント・モジュールのチュートリアル+]
<<top,先頭>>