Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Joshua Cranmer Newsgroups: comp.lang.java.programmer Subject: Re: java.lang vs java.util Date: Sat, 02 Apr 2011 16:22:21 -0400 Organization: A noiseless patient Spider Lines: 19 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sat, 2 Apr 2011 20:22:21 +0000 (UTC) Injection-Info: mx01.eternal-september.org; posting-host="LtjcJP1H6uHOtkcPMh0bUA"; logging-data="13681"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/TiVzTEVn05JCjzUEXegIvR8wXcCSXlRU=" User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.16pre) Gecko/20110305 Lightning/1.0b3pre Thunderbird/3.1.10pre In-Reply-To: Cancel-Lock: sha1:48SV7EtwlIrK3jSbo2kf4Z9IwOo= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:2771 On 04/02/2011 12:11 AM, Lawrence D'Oliveiro wrote: > Surprising to see something defined in java.lang > depend on > something defined in java.util > . > > Surely the hierarchy should go the other way? Iterator is needed for for-each loops, which were added several versions after java.util.Iterator was introduced. Iterablity, being a "language feature" was put in java.lang, but to be backwards-compatible with those who already implemented java.util.Iterator, they used that class. There actually is a note somewhere saying that the developers would prefer to not have to do this, but decided that backwards compatibility was more important than modularity aesthetics. -- Beware of bugs in the above code; I have only proved it correct, not tried it. -- Donald E. Knuth