tag:blogger.com,1999:blog-1094388580279212135.post3472997560705145392..comments2017-07-08T01:22:33.946-04:00Comments on My Own Digressions: From iterator-loop to foreach-loop with one regex.Marcelo Paternostrohttp://www.blogger.com/profile/05767041268062110476noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-1094388580279212135.post-58888526034762112362008-12-10T10:44:00.000-05:002008-12-10T10:44:00.000-05:00And that's it not missed "new Integer(2)" is very ...And that's it not missed "new Integer(2)" is very bad you should:<BR/>a) Use autoboxing<BR/>b) Integer.valueOf(1)Tomhttps://www.blogger.com/profile/06619033174219683085noreply@blogger.comtag:blogger.com,1999:blog-1094388580279212135.post-45874324123338081422007-06-28T09:29:00.000-04:002007-06-28T09:29:00.000-04:00The iterable loop converter requires, that the Ite...The iterable loop converter requires, that the Iterator is not defined with a raw type. It works if you write:<BR/><BR/>for (Iterator<Integer> i = Collections.singleton(new Integer(1)).iterator(); i.hasNext();)<BR/>{<BR/> Integer integer = (Integer)i.next();<BR/> System.out.println(integer);<BR/>}<BR/><BR/>instead.<BR/><BR/>We are conservative with the loop converter because as george pointed out, converting a loop can (if not done correct) infer semantic changes which are very hard to detect.<BR/><BR/>See:<BR/>https://bugs.eclipse.org/bugs/show_bug.cgi?id=194638<BR/>https://bugs.eclipse.org/bugs/show_bug.cgi?id=194639<BR/><BR/>P.S. you can always file a bug report if a feature does not do what you want;-)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1094388580279212135.post-91052522269170236932007-06-28T08:34:00.000-04:002007-06-28T08:34:00.000-04:00George: WOW... I am glad that 80% of my loops, in...George: WOW... I am glad that 80% of my loops, including the ones in the JET templates, were as simple as it can get ;-)Marcelo Paternostrohttps://www.blogger.com/profile/05767041268062110476noreply@blogger.comtag:blogger.com,1999:blog-1094388580279212135.post-21234713770880556322007-06-28T04:49:00.000-04:002007-06-28T04:49:00.000-04:00Great. Works fine in most of the cases, but could ...Great. Works fine in most of the cases, but could lead to hard to find bugs as well (so you can't use Replace All):<BR/><BR/> boolean found = false;<BR/> for (Iterator i = Collections.singleton(new Integer(1)).iterator(); i.hasNext() && !found;) {<BR/> final Integer integer = (Integer) i.next();<BR/> System.out.println(integer);<BR/> // ...<BR/> }<BR/><BR/>or mess up commented out code:<BR/><BR/>// for (Iterator i = Collections.singleton(new Integer(1)).iterator(); i.hasNext();) {<BR/>// final Integer integer = (Integer) i.next();<BR/>// System.out.println(integer);<BR/>// }<BR/><BR/>or create garbage:<BR/><BR/> for (Iterator i1 = Collections.singleton(new Integer(1)).iterator(), i2 = Collections.singleton(new Integer(2)).iterator(); i1.hasNext() && i2.hasNext();) {<BR/> final Integer integer = (Integer) i1.next();<BR/> System.out.println(integer);<BR/> }<BR/><BR/>or doesn't work:<BR/> <BR/> for (Iterator i = Collections.singleton(new Integer(1)).iterator();<BR/> i.hasNext();) {<BR/> final Integer integer = (Integer) i.next();<BR/> System.out.println(integer);<BR/> }Georgehttps://www.blogger.com/profile/02316255356657036950noreply@blogger.comtag:blogger.com,1999:blog-1094388580279212135.post-6818075197579636402007-06-27T15:14:00.000-04:002007-06-27T15:14:00.000-04:00Hah, very nice! Gotta love regex. :)Hah, very nice! Gotta love regex. :)Karl Matthiashttps://www.blogger.com/profile/12685261119475171963noreply@blogger.com