There are a lot of goodies in the brand new Eclipse 3.1, even for those of us
who have been using milestone builds.  The new features I find the most
interesting are:

  • Restricting access to packages or classes.  Using regular
    expressions, you can ask Eclipse to flag any import of classes that belong
    to private or proprietary packages.  For example,
    TestNG exports its
    public API in org.testng and the implementations are in org.testng.private
    Marking this latter package as restricted guarantees that you will never
    import it accidentally.  Similar use cases would be:  not relying
    on internal API’s (com.sun.*) or avoiding J2ME proprietary API’s (*).
  • Visual overrides.  You can now highlight methods that override
    methods from superclasses.  Very convenient.
  • Externalized strings preview.  Hover on a getString() parameter and
    Eclipse will look up the corresponding string in the resource bundle.
  • Single-stroke refactoring undo.  Being able to undo a refactoring
    was already handy, but it now takes a single Ctrl-Z to undo even a complex

The entire list of the new features can be found