i very much believe in a craftsman approach to software development, which, among other things, advocates the value of mastering the tools in your toolbox.
i consider using keyboard shortcuts in your IDE of choice a part of this craftsmanship approach. i do sympathize with unclebob’s plight for mouse-less editing and with stevey’s earlier posts on the subject.
back in 2004 java5 went GA and introduced static imports among several other syntactic niceties.
this feature is most useful for static helper methods – instead of
writing Assert.assertEquals
, i would rather use assertEquals
, since
i know i am writing a test, and in the domain of testing, assertEquals
does not need to be qualified. same goes for many internal utility
methods that i tend to use a lot (e.g. asList()
) or static factory
methods (e.g. newDateTime()
). as a side note, using newXY()
as a
static factory method as opposed to create()
makes it more suitable
for static importing.
in my current IDE (Eclipse) i rely on
auto-completion Ctrl+1 programming, so i would start typing
Assert.
, followed by Ctrl+Space
and then manually convert normal
import
to import static
. it was very undignified.
it turns out that in Eclipse Ctrl+Shift+M
that i already used to
import dependencies under the cursor, also works for converting static
method calls into static imports.
now all i have to do is type Assert.assertEquals
once, then press
Ctrl+Shift+M
(obsessively followed by Ctrl+Shift+O
to organize
imports), and i can start using assertEquals
all over the place
without qualifying it with Assert
.
as an additional convenience, i always set Number of static imports
needed for .* to 1 under Java -> Code Style -> Organize Imports in
Eclipse preferences. this way a single static import of a method from
Assert
triggers import static of Assert.*
, which is what i want.