On 10/10/15 6:55 AM, Remi Forax wrote:
There is an issue with LinkedHashMap (resp LinkedHashSet),
it inherits from HashMap /facepalm/, and static methods are accessible through 
class inheritance /facepalm/.
So if LinkedHashMap doesn't declare some methods of(),
   LinkedHashMap.of("foo")
will return a HashMap :(

Hi Rémi,

Thanks for pointing this out. I had forgotten about "inheritance" of static methods. /Facepalm/ indeed. The original proposal (July 2014) avoided this issue by adding static methods only on interfaces, which are *not* inherited. When we added statics on concrete classes this problem returned.

(I view calling an "inherited" class static method to be poor coding style, but neither javac nor NetBeans warns about it.)

Well, perhaps we won't be adding static factories to the concrete collections after all, so maybe we can dodge this issue. See messages downthread.

s'marks

Reply via email to