On Mon, May 4, 2009 at 3:17 PM, Thomas Müller <[email protected]> wrote: > Hi, > > I would like to use Java 1.5 features now in Jackrabbit. I hope this > will improve reliability, simplify maintenance, and reduce source code > size. Unfortunately using generics is sometimes quite verbose. > Example: > > HashMap wspInfos = new HashMap(); > becomes > HashMap<String, WorkspaceInfo> wspInfos = new HashMap<String, > WorkspaceInfo>(); > > Part of that could be avoided using a helper class: > > HashMap<String, WorkspaceInfo> wspInfos = New.hashMap(); > > I propose to add a new 'generics generator class' called 'New' to > jackrabbit-jcr-commons. It would contain constructor methods for the > most commonly used collection objects. > > public class New { > public static <K, V> HashMap<K, V> hashMap() { > return new HashMap<K, V>(); > } > public static <T> ArrayList<T> arrayList() { > return new ArrayList<T>(); > } > public static <T> WeakReference<T> weakReference(T t) { > return new WeakReference<T>(t); > } > ... > } > > What do you think? Are there better solutions?
+1 I like removing clutter, especially if it is something non-trivial like List <= ArrayList. If one is doing something special in this case, like using a sorted hashmap, he/she can write the verbose version, and it will be very visible. Otherwise having shorter code lines improves readability *a lot*. Regards, Alex -- Alexander Klimetschek [email protected]
