Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!nx01.iad01.newshosting.com!newshosting.com!69.16.185.11.MISMATCH!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail From: Lew Newsgroups: comp.lang.java.programmer Subject: Re: constructing a constant HashMap Date: Sun, 6 Nov 2011 14:37:07 -0800 (PST) Organization: http://groups.google.com Lines: 50 Message-ID: <12098997.1015.1320619027312.JavaMail.geo-discussion-forums@prms22> References: <49CdnacDvODl-wfTnZ2dnUVZ_hmdnZ2d@earthlink.com> <4e9b910a$0$288$14726298@news.sunsite.dk> <4eb6f91f$0$290$14726298@news.sunsite.dk> Reply-To: comp.lang.java.programmer@googlegroups.com NNTP-Posting-Host: 173.164.137.214 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1320619027 22007 127.0.0.1 (6 Nov 2011 22:37:07 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sun, 6 Nov 2011 22:37:07 +0000 (UTC) In-Reply-To: <4eb6f91f$0$290$14726298@news.sunsite.dk> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=173.164.137.214; posting-account=CP-lKQoAAAAGtB5diOuGlDQk0jIwmH0T User-Agent: G2/1.0 X-Google-Web-Client: true Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:9688 Arne Vajh=F8j wrote: > B1ll Gat3s wrote: >> Arne Vajh=F8j wrote: >>> B1ll Gat3s wrote: >>>> This works in ANY setting where an expression of type Map >>>> is appropriate: >>>> >>>> new HashMap () { >>>> { >>>> put("aaa", "bbb"); >>>> ... >>>> }} >>> >>> But it is way more difficult to read >> >> No it isn't. > > Yes - it is. >=20 > Read what Tom wrote: >=20 > #and it is a very useful but also highly surprising construct (i love > #dropping one in front of my pair when pair programming, and watching > #their brains trying to work out what's going on - it takes a while to > #realise it's not a special syntax, just a combination of two other > #bits of syntax). Yeah, but once you're used to it it's quite readable. So you're both right= . The question of "readability" shouldn't be treated like an absolute - it is= or it ain't. Readability is relative to experience and cognitive style. = To someone not trained in computer programmers, none of it is readable. To= a junior programmer, anonymous classes are rather "unreadable". Should yo= u eschew them for that reason? To a slightly less junior programmer the an= onymous-class/initializer combination cited here is strange, but should you= really code to his level? Or maybe should that programmer up their skill = a little and stop being so namby-pamby about legitimate, useful syntax? There's also a relative readability between that idiom and alternatives to = load a Map. There's gotta be an initializer somewhere, folks! Personally, I don't like the overly-clever anonymous/initializer idiom. I = prefer a stodgy old separate initializer block and a non-subclasses HashMap= . I think it's more readable that way than the tricky subclass way present= ed here. --=20 Lew