(It was actually Java 7 that introduced the "diamond operator".) I don't know that we have a guideline. I personally like to have policy in hand for questions like these, but I'm not sure we can in this case. Let me give another example, taken directly from the codebase:
private final Map<GraphListener, Stack<SecuredGraphListener>> listenerMap = new HashMap<GraphListener, Stack<SecuredGraphListener>>(); That seems to me to read much better as: private final Map<GraphListener, Stack<SecuredGraphListener>> listenerMap = new HashMap<>(); because the repetition of the type parameters doesn't add any real information for the reader. But you are right to point to other examples wherein the repetition is really helpful. Here are some rules of thumb (not rules to constrain the code, just helpful hints) that I would be ready to uphold: If you are constructing an object to fill a reference as you declare it, use <>. Repeating the type parameters doesn't help anyone understand what is going on, and it can be very verbose. Otherwise, consider how far away the declaration in question lives. If that is far enough, consider repeating the type parameters to obviate the need for readers to go back and forth in the code base. Does that sound reasonable? --- A. Soroka The University of Virginia Library > On Oct 8, 2016, at 7:45 PM, Claude Warren <[email protected]> wrote: > > I know that in Java 8 the old > {code} > Map<String> m = new HashMap<String>(); > {code} > can now be written as > {code} > Map<String> m = new HashMap<>(); > {code} > But why? I suppose in the above it is simple to figure out what is being > constructed however if the declaration of the var and the constructor are > separated is it not confusing? Do we have a standard/guideline for this in > the Jena code? > > Suppose: > {code} > MyClass<String> myClass = null; > > // .... some lines later > > myClass = new MyClass<>(); > {code} > > makes it difficult to quickly determine the type that myClass is using. > Perhaps I am just tilting at windmills, or am an old curmudgeon. > > Guidance please, > Claude > > . > > > -- > I like: Like Like - The likeliest place on the web > <http://like-like.xenei.com> > LinkedIn: http://www.linkedin.com/in/claudewarren
