DekGenius.com
Previous Section  < Day Day Up >  Next Section

Recipe 4.1 Renaming Elements

4.1.1 Problem

You want to rename a variable, method, or other item in code, and you want to be sure you catch every place the element is used.

4.1.2 Solution

Select the element in the JDT editor and then select Refactor Rename, or right-click the element and select Refactor Rename. Enter the new name you want to give the item, and you're set.

4.1.3 Discussion

Say, for instance, that you have the code appearing in Example 4-1, and you decide that msg, the name of the variable in the main method, is too terse. Instead, you want it named message.

Example 4-1. A simple main method
package org.cookbook.ch04;

public class Messenger
{
    public static void main(String[] args)
    {
        String msg = "No problem.";
        System.out.println(msg);
    }
    
    public static void printem(String msg)
    {
        System.out.println(msg);
    }
}

To rename all uses of this msg variable, highlight the variable and select Refactor Rename, or right-click the variable and select Refactor Rename, opening the dialog shown in Figure 4-1.

Figure 4-1. Renaming a local variable
figs/ecb_0401.gif


To rename msg to message, type the word "message" in the dialog and click Preview, opening a preview of the changes, as shown in Figure 4-2.

Figure 4-2. Previewing refactoring changes
figs/ecb_0402.gif


Eclipse is smart enough to change only references to the variable you're renaming, not the unconnected variable of the same name in the printem method. Clicking OK changes the code in Example 4-1 so that it appears as follows:

package org.cookbook.ch04;

public class Messenger
{
    public static void main(String[] args)
    {
        String message = "No problem.";
        System.out.println(message);
    }
    
    public static void printem(String msg)
    {
        System.out.println(msg);
    }
}

Refactoring a method name is just as easy. For example, select the printem method and then select Refactor Rename, or right-click the variable and select Refactor Rename. This opens the Rename Method dialog shown in Figure 4-3, in which we're renaming the method to display. Clicking OK renames the method and all references to it.

Figure 4-3. Changing a method name
figs/ecb_0403.gif


Besides renaming local variables and methods, you can rename projects, resources, source folders, packages, compilation units, types (such as classes), fields, methods, and parameters with the Eclipse Refactor menu. Note also that refactoring works automatically across multiple files.

To quickly perform a rename that doesn't require full analysis of dependencies in other files, use the "local rename" Quick Assist. In the JDT editor, place the cursor in a variable, method, or type, and press Ctrl-1 (or select Edit Quick Fix).


4.1.3.1 Eclipse 3.0

In Eclipse 3.0, you can update references to the elements you rename not only in code, but also in string literals, comments, Javadoc comments, and even non-Java files, simply by checking the appropriate checkboxes, as shown in Figure 4-4.

Figure 4-4. Renaming options in Eclipse 3.0
figs/ecb_0404.gif


4.1.4 See Also

Recipe 4.2 on moving elements; Recipe 4.7 on restoring elements and files from local history; Chapter 2 of Eclipse (O'Reilly).

    Previous Section  < Day Day Up >  Next Section