Nov 302013

The NetBeans IDE has some great refactoring tools. It makes lots of tasks so much less error prone than doing them manually. In this article, I describe some of my favourite refactoring tools. (These tools can be accessed from the main menu bar (Refactor) or from the context menu of a Java file open in the editor.)

#1 – Rename

Anything that has a name can be renamed. But my favourite example is renaming a class.



When a class is renamed, not only the source code of the class (optionally including comments) is changed, but also the name of the file where it lives. And also any usages of the class elsewhere in your open projects!

#2 – Encapsulate Fields

This feature allows you to generate getters, setters and property change support for fields in a class. It allows you to specify various parameters, such as the visibility of the accessors. So lets take a very simple class, and apply the Encapsulate Fields tool:



… and lets look at the generated code:


 #3 – Extract Interface

If you have an existing class, and you want to extract some of its methods into an interface, the NetBeans IDE has just the tool for you!



Not only does the interface get generated, but your class is automatically changed to implement the new interface too!


#4 – Introduce Method

Sometimes one wants to extract some lines of code into a separate method. Maybe because the initial method is becoming too long to be readable, or because that part of the functionality will be reused elsewhere. Whatever the motivation, the NetBeans IDE has just the tool for the job! So lets look at a silly example where an identical piece of code occurs twice in the same class:


And then lets look at the result of the refactoring:


Tip: Experiment with extracting large, complicated blocks of code – the NetBeans IDE is capable of much more than this simple example!

#5 – Change Method Parameters

Say we decide to now introduce a new parameter for the extractedMethod() created above. If we did this manually, it would mean changing each place where the method is called manually too. (Sometimes this is desirable, but it can be a lot of effort.) With the Change Method Parameters feature, this task becomes much easier, since it allows you to specify a default value for the new parameter.


Now our class looks like this:


Tip: Also try out the Create New Method and Delegate from Existing Method option!

Nov 152013

The NetBeans IDE has so many wonderful features that makes a Java developer’s life easier. And many of these features have keyboard shortcuts attached to them. So I decided to make a list of the shortcuts that I think every developer should know.

  • Ctrl+O : Quickly go to a class
    This shows a dialog that allows you to start typing the name of the class that you are looking for. You can then choose the class from a list of matched names.
  • Ctrl+Shift+I : Fix imports
    Add any new imports that are necessary and remove unused ones at the same time. If a class name matches multiple possibilities, a dialog is displayed that allows you to choose which class to import.
  • Alt+Shift+F : Format selection
    Format the selected code according to the rules that can be changed in the IDE Options > Editor > Formatting. This is also a handy way to format XML in a useful way.
  • Alt+F7 : Find usages
    Find where the currently selected type is used.
  • Ctrl+R : Rename
    Rename the selected variable or class, refactoring if required.
  • Alt+Insert : Generate code
    Choose from various context sensitive items that the IDE can generate, for example generating getters and setters.
  • Ctrl+Space : Auto complete
    Context sensitive auto complete.
  • Ctrl+/ : Toggle comment lines
    Adds // to the start of each of the selected lines. Or removes these if present.
  • Ctrl+Shift+Up/Down : Copy lines up/down
    Make a copy of the currently selected lines, without going through the clipboard.
  • Alt+Shift+Up/Down : Move lines up/down
    Move the currently selected lines, without going through the clipboard.

For a much more comprehensive list of keyboard shortcuts, have a look at Highlights of NetBeans IDE 7.4 Keyboard Shortcuts & Code Templates.