actually last() would probably be more useful. I still don't see the need for first() when next() will suffice, unless first() is changing the return value when there is no first().
As clarification what happens if I call: Iterator<String> iterator = Arrays.asList( "a","b" ).iterator(); x = IteratorUtil.first( iterator ); y = IteratorUtil.first( iterator ); Is the value of y intended to be "a" or "b"? I assume "b" how does this differ from: Iterator<String> iterator = Arrays.asList( "a","b" ).iterator(); x = iterator.next(); y = iterator.next(); If I add another call so I have: Iterator<String> iterator = Arrays.asList( "a","b" ).iterator(); x = IteratorUtil.first( iterator ); y = IteratorUtil.first( iterator ); z = IteratorUtil.first( iterator ); what happens on the 3rd call? I know I get an exception in the standard case. Claude On Fri, Jan 12, 2018 at 1:21 AM, sebb <seb...@gmail.com> wrote: > On 12 January 2018 at 00:51, Gary Gregory <garydgreg...@gmail.com> wrote: > > On Thu, Jan 11, 2018 at 5:23 PM, sebb <seb...@gmail.com> wrote: > > > >> On 11 January 2018 at 15:22, Gary Gregory <garydgreg...@gmail.com> > wrote: > >> > Hi, > >> > > >> > Some APIs, either due to age or design, deal out an Iterator and > nothing > >> > else. And sometimes, all I care about (in tests, for example, or if > the > >> > list is a set of aliases) is the first object. > >> > > >> > The method IteratorUtils.first(Iterator) is a shorthand for > >> > IteratorUtils.get(Iterator, 0). > >> > >> The code method is only shorter by one character and that is a space. > >> > >> This will just add unnecessary code and maintenance costs. > >> > > > > I do not look at it that way. I see it at providing an abstraction that > > says "give me the first element" instead of "give me the 0th element". > Code > > reads better that way. IMO. > > So add a comment. > Or write your own wrapper. > > > What maintenance costs are referring to here? > > All code needs updating from time to time. > > Remember JUnit3? Javadoc pre-8? > > Are you sure that the initial commit will be perfect? > Or will the Javadoc need adjusting? > > Will there be questions asking whether first includes null or not? > Such queries may occur even if the Javadoc is perfect. > > And of course it takes a tiny bit longer to run the tests, and the > test logs are bigger. > > And it's a bit harder to navigate the source. > > etc. > > > > > Gary > > > > > > > >> > >> > I do not plan to add last(), the obvious sibling to such a method, > YAGNI > >> > for now. > >> > > >> > Gary > >> > > >> > > >> > On Thu, Jan 11, 2018 at 2:52 AM, sebb <seb...@gmail.com> wrote: > >> > > >> >> Also, what is the use case for such methods? > >> >> How many will there be - i.e. do you plan to add .last, .second, > >> .random? > >> >> > >> >> I'm not keen on methods that save a few lines of code unless there's > a > >> >> common use case and the behaviour is obvious/unambiguous from the > >> >> name. > >> >> > >> >> On 11 January 2018 at 07:45, Claude Warren <cla...@xenei.com> wrote: > >> >> > does first return the first object or the first non-null object? > >> >> > > >> >> > If the first object how do you distinguish between first() > returning a > >> >> null > >> >> > object and there being an empty container? > >> >> > If the first non-null object how do you determine that nulls were > >> >> skipped? > >> >> > > >> >> > Keep in mind that the Optional implementation in Java8 will throw > an > >> >> > exception if it is constructed with a null object. > >> >> > > >> >> > On Wed, Jan 10, 2018 at 4:45 PM, Gary Gregory < > garydgreg...@gmail.com > >> > > >> >> > wrote: > >> >> > > >> >> >> Hi All, > >> >> >> > >> >> >> I plan on adding methods like: > >> >> >> - IteratorUtils.first(Iterator) > >> >> >> - IterableUtils.first(Iterable) > >> >> >> > >> >> >> Gary > >> >> >> > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > I like: Like Like - The likeliest place on the web > >> >> > <http://like-like.xenei.com> > >> >> > LinkedIn: http://www.linkedin.com/in/claudewarren > >> >> > >> >> ------------------------------------------------------------ > --------- > >> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> >> For additional commands, e-mail: dev-h...@commons.apache.org > >> >> > >> >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > >> For additional commands, e-mail: dev-h...@commons.apache.org > >> > >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > > -- I like: Like Like - The likeliest place on the web <http://like-like.xenei.com> LinkedIn: http://www.linkedin.com/in/claudewarren