I always learn when we declare a collection we should do, Interface ob = new Class()
, if i want to use for example a LinkedList i\'ll do List ob = new LinkedL
the rule "always code to interfaces" must be taken with some flexibility. what you are suggesting is fine, and as you came to the conclusion, the only option.
as a side note, coding to concrete classes like this is faster is most JVMs. deciding whether the performance is worth breaking the rule is the hard thing to decide.