I was encouraged by this guy to make better use of Eclipse's code templates. I've used templates for a while for boilerplate code like adding a log4j logger to a class, like this:
class Foo { private static final Logger log = Logger.getLogger(Foo.class); ... }
Using templates, I just have to type 'l4j' and cntl-space and there I go. One thing that had been plaguing me is that I still had to cnt-space again to add the imports, and thanks to Sun's needless duplication of effort, I had to select the log4j Logger over the lame java.util.Logger.
Little did I know about the ${import} and ${importStatic} variables. The following template gives me the required imports for free.
${imp:import(org.apache.log4j.Logger)} private static final Logger log = Logger.getLogger(${enclosing_type}.class);
And how about this for JUnit 4 imports:
${imp:import(org.junit.Test)} ${impst:importStatic('org.junit.Assert.*')}
With enough Eclipse templates, Java might not drive me completely batshit after all. I love it when I file a bug and the feature already exists. Thanks, Eclipse.
No comments:
Post a Comment