blob: 4f1de000508d037c476e22a18aaaf4491b1624b3 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
* Copyright © 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
-->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Static Code Analysis in the NetBeans IDE Java Editor</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"></meta>
<meta name="author" content="Alyona.Stashkova@netbeans.org"></meta>
<meta name="description" content="Overview of static analysis of the java code functionality in the NetBeans IDE."></meta>
<meta name="keywords" content="NetBeans, IDE, integrated development environment, Java editor, code analysis, inspections, configurations"></meta>
<link rel="stylesheet" type="text/css" href="../../../netbeans.css"></link>
<link rel="stylesheet" type="text/css" href="../../../lytebox.css" media="screen"></link>
<script type="text/javascript" src="../../../images_www/js/lytebox-compressed.js"></script>
</head>
<body><a name="top"></a>
<h1>Static Code Analysis in the NetBeans IDE Java Editor</h1>
<div class="articledate" style="margin-left: 0px;">Jan Lahoda, Alyona Stashkova</div>
<p>The NetBeans IDE Java Editor has a static code analysis feature, which is a tool for finding potential problems and detecting inconsistencies in your source code. </p>
<p>In this tutorial, you will learn how to perform static analysis of your Java code using FindBugs and NetBeans Java Hints without actually running your applications.</p>
<h3>Contents</h3>
<img src="../../../images_www/articles/80/netbeans-stamp.png"
class="stamp" alt="Content on this page applies to NetBeans IDE 8.0"
title="Content on this page applies to the NetBeans IDE 8.0" />
<ul class="toc">
<li><a href="#setup">Setting Up the Tutorial Environment</a></li>
<li><a href="#config">Using Configurations</a>
<ul>
<li><a href="#all">Running All Analyzers</a></li>
<li><a href="#hints">Verifying Java Code against NetBeans Java Hints</a></li>
<li><a href="#fb">Finding Potential Problems in Java Code with Findbugs</a></li>
<li><a href="#default">Customizing a Default Configuration</a></li>
</ul>
</li>
<li><a href="#create">Creating and Deleting Configurations</a></li>
<li><a href="#inspect">Running Single Inspections</a></li>
<li><a href="#summary">Summary</a></li>
<li><a href="#seealso">See Also</a></li>
</ul>
<h2><a name="reqs"></a>Requirements</h2>
<p><strong>To complete this tutorial, you need the following software and resources.</strong></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software or Resource</th>
<th class="tblheader" scope="col">Version Required</th>
</tr>
<tr>
<td class="tbltd1"><a href="http://netbeans.org/downloads/index.html" target="_blank">NetBeans IDE</a></td>
<td class="tbltd1">Version 8.0 </td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">Java Development Kit</a> (JDK)</td>
<td class="tbltd1">Version 7 and higher</td>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip" target="_blank">library.zip</a></td>
<td class="tbltd1">NetBeans project</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar">jsr305-2.0.0.jar</a></td>
<td class="tbltd1">Java Specification Request intended to improve the effectiveness of static analysis tools</td>
</tr>
</tbody>
</table>
<p class="notes"><b>Note:</b> <tt>jsr305-2.0.0.jar</tt> is included into <tt>library.zip</tt> for the purposes of this tutorial. </p>
<p>If using another NetBeans project, <a href="http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/2.0.0/jsr305-2.0.0.jar">jsr305-2.0.0.jar</a> should be downloaded and added to the Libraries folder of the your project in the IDE as follows:</p>
<ol>
<li>Right-click the Libraries folder and choose the Add JAR/Folder from the popup menu. </li>
<li>In the Add JAR/Folder dialog box, specify the path to the downloaded <tt>jsr305-2.0.0.jar</tt> file and click Open.
<p class="align-center"><img src="../../../images_www/articles/80/java/code-inspect/jar.png"
alt="jsr305-2.0.0.jar added" border=1/></p></li>
</ol>
<a name="setup"></a>
<h2>Setting Up the Tutorial Environment</h2>
<p>In addition to the required software listed above you should have the following installed on your computer:</p>
<ul>
<li>The <a href="https://netbeans.org/projects/samples/downloads/download/Samples/Java/library.zip" target="_blank">library.zip</a> file should be unzipped into your NetBeans project folder and opened in the NetBeans IDE.</li>
<li><a name="plugin"></a>The FindBugs plugin should be downloaded and installed into the NetBeans IDE as follows:
<ol>
<li>Choose Source &gt; Inspect from the main IDE's menu.</li>
<li>In the Inspect dialog box, click Install.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/inspect.png" rel="lytebox" title="Inspect dialog box - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/inspect-small.png" alt="Inspect dialog box" border=1/></a></p></li>
<li>In the Installer dialog box, click Next to proceed with the installation.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/plugin.png" rel="lytebox" title="Installing the plugin - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/plugin-small.png" alt="Installing the plugin" border=1/></a></p></li>
<li>Review the license agreement, select the license agreement option, and click Install.</li>
<li>When the installation is complete, click Finish.</li>
</ol></li>
</ul>
<a name="config"></a>
<h2>Using Predefined Configurations</h2>
<p>You can use the following predefined configurations when inspecting your code in the NetBeans IDE:</p>
<ul>
<li><a href="#all">All Analyzers</a></li>
<li><a href="#hints">NetBeans Java Hints</a></li>
<li><a href="#fb">FindBugs</a></li>
<li><a href="#default">Default</a></li>
</ul>
<a name="all"></a>
<h3>Running All Analyzers</h3>
<p>The <tt>All Analyzers</tt> configuration deploys all static code analysis tools available in the IDE.</p>
<p><b>To run the <tt>All Analyzers</tt> configuration, complete the following steps:</b></p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
<li>In the Scope drop-down list of the Inspect dialog box, select <tt>Current Project (library)</tt>.</li>
<li>In the Configuration drop-down list, select the <tt>All Analyzers</tt> configuration.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/allconfig.png" rel="lytebox" title="All Analyzers configuration selected - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/allconfig-small.png" alt="All Analyzers configuration selected" border=1/></a></p>
<p class="notes"><b>Note:</b> You need to install the <a href="#plugin">FindBugs</a> plugin to run this configuration for the first time.</p></li>
<li>Click Inspect.<br/>
The results of the analysis are displayed in the Inspector Window as a tree view on the left.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/all.png" rel="lytebox" title="All Analyzers configuration run - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/all-small.png" alt="All Analyzers configuration run" border=1/></a></p>
The description of the currently selected in the tree view finding is displayed on the right.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/alldescription.png" rel="lytebox" title="Description - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/alldescription-small.png" alt="Description" border=1/></a></p>
<p class="notes"><b>Note:</b> If you want to leave some part of your code that is reported as problematic as is, the IDE allows you to suppress the warning for this code to leave it without any changes. You can double-click a warning in the tree view of the Inspector Window to go to the Source Editor. Press Alt-Enter, click the black arrow pointing to the right at the end of the displayed hint, and choose <tt>SuppressWarning - <i>(warning name)</i></tt>.</p>
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/suppress.png" rel="lytebox" title="Suppressing a warning - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/suppress-small.png" alt="Suppressing a warning" border=1/></a></p>
</li>
</ol>
<a name="hints"></a>
<h3>Verifying Java Code against NetBeans Java Hints</h3>
<p>The <tt>NetBeans Java Hints</tt> configuration available in the IDE enables you to verify if the predefined coding standard rules are satisfied by the source code under consideration. In other words, it applies a set of NetBeans Java Hints (also known as code inspections) to your Java source files.</p>
<p><b>To run the <tt>NetBeans Java Hints</tt> configuration, complete the following steps:</b></p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
<li>In the Scope drop-down list of the Inspect dialog box, select <tt>Open Projects</tt> (if you have only one <tt>library</tt> project open in the IDE) or <tt>Current Project (library)</tt>.
<p class="notes"><b>Note:</b> You can define a scope (a file, package, or project(s)) for the <tt>NetBeans Java Hints</tt> configuration.</p>
</li>
<li>Select the Configuration radio button and choose <tt>NetBeans Java Hints</tt> in the drop-down list.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/hints.png" rel="lytebox" title="Selecting NetBeans Java Hints - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/hints-small.png" alt="Selecting NetBeans Java Hints" border=1/></a></p> </li>
<li>Click Inspect.<br/>
The IDE displays the tree view with the results of the analysis with the <tt>NetBeans Java Hints</tt> configuration in the Inspector Window.
<p class="align-center"><img src="../../../images_www/articles/80/java/code-inspect/hintsconfig.png" alt="NetBeans Java Hints configuration run" border=1/></p></li>
<li>In the Inspector Window, click the <a href="#categorize">Categorize</a> button in the toolbar on the left to view the problems grouped into categories.
<p class="align-center"><img src="../../../images_www/articles/80/java/code-inspect/catview.png" alt="Found problems grouped into categories" border=1/></p>
The following table displays the commands available in the Inspector Window.
<table width="600px">
<tr>
<th class="tblheader" scope="col">Icon</th>
<th class="tblheader" scope="col" style="width:110px">Name</th>
<th class="tblheader" scope="col">Function</th>
</tr>
<tr>
<td class="tbltd1 align-center"><img src="../../../images_www/articles/80/java/code-inspect/refreshbutton.png"
alt="Refresh icon"/></td>
<td class="tbltd1 align-center"><strong>Refresh</strong></td>
<td class="tbltd1">Displays a refreshed list of the static analysis results. </td>
</tr>
<tr>
<td class="tbltd1 align-center"><img src="../../../images_www/articles/80/java/code-inspect/upbutton.png"
alt="Previous icon"/></td>
<td class="tbltd1 align-center"><strong>Previous Problem</strong></td>
<td class="tbltd1">Displays the previous problem in the list of the static analysis results.</td>
</tr>
<tr>
<td class="tbltd1 align-center"><img src="../../../images_www/articles/80/java/code-inspect/downbutton.png"
alt="Next icon"/></td>
<td class="tbltd1 align-center"><strong>Next Problem</strong></td>
<td class="tbltd1">Displays the following problem in the list of the static analysis results.</td>
</tr>
<tr>
<td class="tbltd1 align-center"><img src="../../../images_www/articles/80/java/code-inspect/categorizebutton.png"
alt="Categorize icon"/></td>
<td class="tbltd1 align-center"><a name="categorize"></a><strong>Categorize</strong></td>
<td class="tbltd1">Toggles the collapsed view of the problems detected in a file, project, or package or the categorized view of all the detected problems. </td>
</tr>
</table>
</li>
</ol>
<a name="fb"></a>
<h3>Finding Potential Problems in Java Code with FindBugs</h3>
<p>The <tt>FindBugs</tt> configuration available in the IDE enables you to find a wide range of potential problems in your code. It invokes the popular open source FindBugs tool for code analysis in Java. The bug report gets generated and is displayed in the Inspector Window of the NetBeans IDE, which categorizes all the found problems and allows direct navigation from the bugs in the report to the suspicious code. You can also read a bug description in the adjacent window or review it at the <a href="http://findbugs.sourceforge.net/bugDescriptions.html">FindBugs Bug Descriptions</a> page by the pointer provided at the top of the left frame. </p>
<p class="notes"><b>Note:</b> You need to install the <a href="#plugin">FindBugs</a> plugin to run this configuration for the first time.</p>
<p><b>To identify potential errors in your Java code with the <tt>FindBugs</tt> configuration, complete the following steps:</b></p>
<ol>
<li>Open the <tt>library</tt> project in the NetBeans IDE and choose Source &gt; Inspect from the main toolbar.</li>
<li>In the Scope drop-down list of the Inspect dialog box, select <tt>Current Project (library)</tt>.
<p class="notes"><b>Note:</b> You can inspect a file, package, or project(s) with the <tt>FindBugs</tt> configuration.</p></li>
<li>In the Inspect dialog box, select the <tt>FindBugs</tt> configuration.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/fb.png" rel="lytebox" title="FindBugs configuration selected - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/fb-small.png" alt="FindBugs configuration selected" border=1/></a></p></li>
<li>Click the Inspect button to initiate the static code analysis.<br/>
The result of the static code analysis is displayed in the Inspector Window below the Source Editor.<br>
The description of the selected bug is displayed in the frame on the right.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/inspector.png" rel="lytebox" title="Inspector Window - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/inspector-small.png" alt="Inspector Window" border=1/></a></p></li>
<li>Alternatively, click the <a href="#categorize">Categorize</a> button in the toolbar on the left to view the bugs grouped into categories.
<p class="align-center"><img src="../../../images_www/articles/80/java/code-inspect/fbcat.png" alt="Found bugs grouped into categories" border=1/></p></li>
</ol>
<p class="notes"><b>Notes:</b></p>
<ul>
<li>If you double-click an issue in the expanded list, the IDE displays the reported issue in the Source Editor. <br/>
Press Alt-Enter to view the bug description in the source code.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/source-editor.png" rel="lytebox" title="Reported issue in the Source Editor - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/source-editor-small.png" alt="Reported issue in the Source Editor" border=1/></a></p></li>
<li>Potential errors are highlighted in the code with exclamation mark icons (<img src="../../../images_www/articles/80/java/code-inspect/exclamation.png" alt="exclamation mark icon"/>) in the left margin of the Source Editor.</li>
</ul>
<p><b>To enable FindBugs in the Java Editor, complete the following steps:</b></p>
<ol>
<li>Choose Tools &gt; Options in the main IDE's toolbar.</li>
<li>Select the Editor tab and choose Hints. </li>
<li>Choose <tt>FindBugs</tt> in the Language drop-down list.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/fb-editor.png" rel="lytebox" title="Enabling FindBugs in the Source Editor - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/fb-editor-small.png" alt="Enabling FindBugs in the Source Editor" border=1/></a></p></li>
<li>Select the Run FindBugs in Editor option.</li>
<li>Click OK.<br/>
If you now press Alt-Enter in the source code where a bug is reported and click the black arrow pointing to the right at the end of the displayed tip, the IDE shows some fixing options for a
potential bug.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/fbenabled.png" rel="lytebox" title="FindBugs enabled in the Source Editor - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/fbenabled-small.png" alt="FindBugs enabled in the Source Editor" border=1/></a></p></li>
</ol>
<a name="default"></a>
<h3>Customizing a Default Configuration</h3>
<p>While working on your code you may need to customize a predefined configuration that includes your own NetBeans Java hints or FindBugs bugs.</p>
<p><b>To tailor a predefined <tt>Default</tt> configuration to your own needs, complete the following steps:</b></p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
<li>In the Inspect dialog box, select the Configuration radio button and select the <tt>Default</tt> configuration.
<li> Click Manage.<br/>
The IDE displays the Configurations dialog box.
<p class="align-center">
<img src="../../../images_www/articles/80/java/code-inspect/configurations-db.png" alt="Configurations dialog box" border=1/></p></li>
<li>Ensure <tt>Default</tt> is selected in the Configurations drop-down list. </li>
<li>In the Analyzer drop-down list, select the <tt>JRE 8 Profiles Conformance</tt>, <tt>Netbeans Java Hints</tt>, or <tt>FindBugs</tt> analyzer.</li>
<li>Depending on the choice of the analyzer in the previous step, select the profile to validate, the inspections, or bugs you need to include into your <tt>Default</tt> configuration.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/select-inspections.png" rel="lytebox" title="Selecting inspections - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/select-inspections-small.png" alt="Selecting inspections" border=1/></a></p></li>
<li>Click OK to save your <tt>Default</tt> configuration.</li>
</ol>
<a name="create"></a>
<h2>Creating and Deleting Configurations</h2>
<p>You can create and delete your own configurations to be used in the static analysis of your Java code.</p>
<p><b>To create a configuration, complete the following steps:</b> </p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
<li>In the Inspect dialog box, select the Configuration radio button and select the <tt>Default</tt> configuration.
<li> Click Manage.</li>
<li>In the Configurations dialog box, click the black arrow at the end of the Configurations drop-down list and choose New.
<p class="align-center">
<img src="../../../images_www/articles/80/java/code-inspect/newconfig.png" alt="Creating a configuration" border=1/></p>
A <tt>newConfig</tt> configuration is created and added to the Configurations drop-down list.
<p class="align-center">
<img src="../../../images_www/articles/80/java/code-inspect/newconfig-created.png" alt="newConfig in the Configuration list" border=1/></p></li>
<li>In the Analyzer drop-down list, choose <tt>JRE 8 Profiles Conformance</tt>, <tt>Netbeans Java Hints</tt>, or <tt>FindBugs</tt>.</li>
<li>Specify the profile, inspections, or bugs to be included into your own configuration. </li>
<li>Click OK to save your edits and close the Configurations dialog box.<br/>
The created <tt>newConfig</tt> configuration is available in the Configuration drop-down list of the Inspect dialog box.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/newconfig-inspect.png" rel="lytebox" title="New configuration created - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/newconfig-inspect-small.png" alt="New configuration created" border=1/></a></p></li>
</ol>
<p class="notes"><b>Note:</b> To rename a configuration, select the <tt>newConfig</tt> configuration in the Configurations drop-down list, click the black arrow at the end of the Configurations drop-down list and choose Rename. Type a new name (for example, <tt>renamedConfig</tt>) and press Enter to save your edits.</p>
<p class="align-center">
<img src="../../../images_www/articles/80/java/code-inspect/renamedconfig.png" alt="newConfig renamed" border=1/></p>
<p><b>To delete a configuration, complete the following steps:</b> </p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's toolbar.</li>
<li>In the Inspect dialog box, select the Configuration radio button and select the configuration to be deleted (<tt>renamedConfig</tt> in this example).
<li> Click Manage.</li>
<li>In the Configurations dialog box, click the black arrow at the end of the Configurations drop-down list and choose Delete.
<p class="align-center">
<img src="../../../images_www/articles/80/java/code-inspect/delete.png" alt="Deleting renamedConfig" border=1/></p></li>
<li>In the Delete Configuration dialog box, click Yes to confirm the deletion of the configuration.
<p class="align-center"><img src="../../../images_www/articles/80/java/code-inspect/delete-confirm.png" alt="Confirming the deletion of renamedConfig" border=1/></p>
The <tt>renamedConfig</tt> configuration is deleted from the Configurations list.
<!--<p class="align-center"><a href="../../../images_www/articles/72/java/code-inspect/norenamedconfig.png" rel="lytebox" title="No renamedConfig in the Configurations list- Click to enlarge">
<img src="../../../images_www/articles/72/java/code-inspect/norenamedconfig-small.png" alt="No renamedConfig in the Configurations list" border=1/></a></p>--></li>
</ol>
<p class="notes"><b>Note:</b> Refer to the <a href="http://platform.netbeans.org/tutorials/nbm-java-hint.html">NetBeans Java Hint Module Tutorial</a> for information on how to create a NetBeans module that provides one or more NetBeans Java hints.
</p>
<a name="inspect"></a>
<h2>Running Single Inspections</h2>
<p>You can inspect your code for a particular deficiency in your source code using the static code analysis feature in the NetBeans IDE. </p>
<p><b>To detect a specific inconsistency or problem in your Java source code with a single inspection, complete the following steps:</b></p>
<ol>
<li>Choose Source &gt; Inspect from the main IDE's menu.</li>
<li>In the Scope drop-down list of the Inspect dialog box, select a file, package, or project(s) to be inspected. </li>
<li>Select Single Inspection and do either of the following:
<ul>
<li>In the Single Inspection drop-down list, scroll and select a <i>single</i> NetBeans Java hint or FindBugs bug to be used in the source code analysis.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/single-inspection.png" rel="lytebox" title="Single Inspection drop-down list - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/single-inspection-small.png" alt="Single Inspection drop-down list" border=1/></a></p></li>
<li>Click Browse to open the Configurations dialog box and, in the Analyzer drop-down list, specify the analyzer and then choose a profile (for the JRE 8 Profile Compliance analyzer), a <i>single</i> inspection (for the NetBeans Java Hints analyzer), or a <i>single</i> bug (for the FindBugs analyzer) to be used in the source code analysis. Click OK to close the Configurations dialog box.
<p class="align-center"><a href="../../../images_www/articles/80/java/code-inspect/hint-inspection.png" rel="lytebox" title="Browse Inspections dialog box - Click to enlarge">
<img src="../../../images_www/articles/80/java/code-inspect/hint-inspection-small.png" alt="Browse Inspections dialog box" border=1/></a></p></li>
</ul>
</li>
<li>In the Inspect dialog box, click Inspect to perform the source code analysis. <br/>
After the Inspect operation is completed, the hints that can be applied to your code or bugs that have been found are displayed in the Inspector Window below the Source Editor. </li>
</ol>
<a name="summary"></a>
<h2>Summary</h2>
<p>This tutorial covers most frequent usages of the static code analysis feature in the NetBeans IDE. Please note that with the static code analysis functionality you can also perform custom refactorings at a project scope, or apply particular refactoring configurations to several projects open in the IDE, etc. </p>
<p class="align-center"><a href="#top">top</a></p>
<div class="feedback-box">
<a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Static%20Code%20Analysis%20in%20NetBeans%20IDE">Send Feedback on This Tutorial</a></div>
<br style="clear:both;"/>
<a name="seealso"></a>
<h2>See Also</h2>
<p>For related material see the following documents:</p>
<ul>
<li><a href="code-inspect-screencast.html">Video of the Static Code Analysis Feature in the NetBeans IDE</a></li>
<li><a href="http://wiki.netbeans.org/Java_Hints">Complete List of NetBeans Java Hints</a></li>
<li><a href="http://wiki.netbeans.org/JavaDeclarativeHintsDescriptionSketch">Description of NetBeans Java Declarative Hints</a></li>
<li><a href="http://platform.netbeans.org/tutorials/nbm-java-hint.html">NetBeans Java Hint Module Tutorial</a></li>
<li><a href="http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG613">Using Hints in Source Code
Analysis and Refactoring</a> in <i>Developing Applications with NetBeans IDE</i></li>
</ul>
<p class="align-center"><a href="#top">top</a></p>
</body>
</html>