On Mon, May 4, 2009 at 4:12 PM, Felix Meschberger <[email protected]> wrote: > Hi, > > Thomas Müller schrieb: >> 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. > > I don't consider this a big issue. > >> 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 > > Starting to have such helper classes amounts to a spiral with no end. > There is IMHO also no use. i agree with felix. such helper classes only confuse developers and do not really have a big advantage. i like it to be verbose - it easier to read, since you know what you get, and simpler to debug. furthermore it creates a new dependency to another package.
so: -1 for adding a 'New' helper class. regards, toby > > In fact, while the "new HashMap<String, WorkspaceInfo>()" construct has > almost no influence on the generated class file, the helper class > creates a new class object and increases memory footprint. I think the > price is beyond what might be acceptable. > > Regards > Felix > > >> >> Regards, >> Thomas >> > >
