There are things about the JavaLanguage that add some additional possibilities and/or limitations to what refactorings can and cannot be used. ----- Candidates... * RefactorExtractInnerClass * PromoteInnerClass * DemoteToInnerClass * using reflection in some way ----- Consider... * RefactoringBrowserForJava -- asking if there is one; with example of a simple end-user supported one * Request to IBM for a VisualAgeJavaRefactoringBrowser Rules: * ReplaceConditionalWithPolymorphism * DefineConstantsInInterfaces * EnumeratedTypesInJava ''(Use a class with static integers, as Java doesn't have "enum".)'' * AvoidFinalStringsForUniqueTypes ''(An alternative EnumeratedTypesInJava implementation.)'' * All of the standard RefactoringPatterns make sense in Java. Don't forget that Java was used for all the examples in the RefactoringBook. Other: * SillyJavaEnumerationRefactorings ---- CategoryRefactoring