NNTP-Posting-Date: Tue, 19 Feb 2013 02:56:13 -0600 Date: Tue, 19 Feb 2013 08:56:11 +0000 From: lipska the kat <"nospam at neversurrender dot co dot uk"> Organization: Trollbusters 3 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120410 Thunderbird/11.0.1 MIME-Version: 1.0 Newsgroups: comp.lang.java.programmer Subject: Re: abbreviated generic syntax References: <0h93i8pcopf17145fus96g7vams86hocat@4ax.com> <6le5i8d6o3hsod9n20q6d15g36nb2vllin@4ax.com> In-Reply-To: <6le5i8d6o3hsod9n20q6d15g36nb2vllin@4ax.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Message-ID: <4K2dnVfP746wo77MnZ2dnUVZ7vSdnZ2d@bt.com> Lines: 40 X-Usenet-Provider: http://www.giganews.com X-AuthenticatedUsername: NoAuthUser X-Trace: sv3-NFuUmDHtb0Ngs2ay4+ycMZnkKmrM89J1AdzDQUatF9NvBtZZykiu5oPdHLts6XEdWVZlnzDzXy8xmd5!YQAc+EXrHmBVARRNoA4uago7VyvMXdGhMD1dUkz4siwe1DbLaMTUXHMcwbJLGKi786dPlcr7VYA= X-Complaints-To: abuse@btinternet.com X-DMCA-Complaints-To: abuse@btinternet.com X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 2505 Path: csiph.com!usenet.pasdenom.info!news.stben.net!border3.nntp.ams.giganews.com!Xl.tags.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!local2.nntp.ams.giganews.com!nntp.bt.com!news.bt.com.POSTED!not-for-mail Xref: csiph.com comp.lang.java.programmer:22357 On 18/02/13 23:35, Roedy Green wrote: > On Mon, 18 Feb 2013 12:29:53 -0800 (PST), Lew > wrote, quoted or indirectly quoted someone who said : > >> The diamond operator distinguishes the generics usage. > > OK, that is obvious, but would it break any code? Just to recap 1. ArrayList a = new ArrayList( 100 ); is quite clear ArrayList a = new ArrayList( 100 ); means you can do this and it compiles (1.6 and 1.7) 2. ArrayList c = new ArrayList( 100 ); c.add(new String("foo")); but you will get a runtime exception if you try to do Integer ops on the String 3. ArrayList a = new ArrayList<>( 100 ); uses the 1.7 <> operator to allow the compiler to infer the type at compile time from the type of the LHS, it's shorthand to allow you to avoid having to type the generic params twice. Given that generics is all about compile time type checking then I can't see anything breaking. http://docs.oracle.com/javase/1.5.0/docs/guide/language/index.html lipska -- Lipska the KatŠ: Troll hunter, sandbox destroyer and farscape dreamer of Aeryn Sun