On 12/4/13 7:20 AM, Andrew Douglas Pitonyak wrote: > > On 12/03/2013 08:32 AM, Herbert Duerr wrote: >> On 03.12.2013 13:02, Andre Fischer wrote: >>> Additionally to this almost correct statement one could mention that >>> isEmpty() is preferred over getLength()>0 and why. >> >> Yes, it is preferred for checking the emptiness because it directly >> expresses what it checks. >> >> In general it is a good idea to check for emptiness instead of >> counting the elements and then comparing against zero. Its the old >> "interface vs. implementation detail" question. The result will be the >> same from a mathematical standpoint but the effort to get this result >> may be different. From an algorithmic complexity standpoint an >> emptiness check is always equal or better. Maybe a mathematician can >> provide some insights from the set theory on this question? >> >> By the way: the String class of Java>=6 got its isEmpty() method for >> the same reasons. > > As Herbert said, this directly expresses what it checks. I would add > "and it reads better". > > There are other reasons, however; for example, depending on the > implementation, it may be significantly faster than comparing against > the length. For one implementation it may not matter, but, if you change > the implementation in the future, it may. > > Uniformity is another possible reason (assuming other classes also > implement isEmpty()). If you become used to using the expressive form > (ie, using isEmpty() rather than comparing size), then you can leave > optimizing the call to the class implementer rather than worrying about > the correct way to do it. I have seen empty strings checked by comparing > the length to zero, and even using a string compare against an empty > string. >
and again to replace getLength() with isEmpty() can be something for newbies to get more familiar with the code and do something useful. Juergen --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org