Path: csiph.com!aioe.org!.POSTED!not-for-mail From: =?UTF-8?Q?Arne_Vajh=c3=b8j?= Newsgroups: comp.lang.java.programmer Subject: Re: double == double Date: Sun, 16 Oct 2016 22:49:46 -0400 Organization: Aioe.org NNTP Server Lines: 44 Message-ID: References: <8737k0qd38.fsf@golem.phantasia.org> <87zim5es30.fsf@golem.phantasia.org> NNTP-Posting-Host: PBuS014lhzVyHjLbXmo/ZQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.java.programmer:35792 On 10/16/2016 5:19 PM, 4ndre4 wrote: > On 16/10/2016 19:14, Arne Vajhøj wrote: > > [...] >> But that code is not using String as version > > Erm... how about this? :) I don't see how this is less OO-ish than the > previous one, but hey... okay!...: > > List versions = new ArrayList(); > > versions.add("1.9.0-123"); > versions.add("1.10.0-123"); > versions.add("1.7.0-123"); > versions.add("1.7.0-123"); > versions.add("1.7.0-10"); > versions.add("1.7.0-9"); > > Collections.sort(versions, new VersionComparator()); > > ... > > static class VersionComparator implements Comparator { > public int compare(String version1, String version2) { > try { > ParsedVersion pv1 = parse(version1); > ParsedVersion pv2 = parse(version2); > if (pv1.equals(pv2)) return 0; > if (pv1.lessThan(pv2)) return -1; > return 1; > } catch (InvalidVersionException e) { > throw new IllegalArgumentException(e); > } > } Having data and methods operating on the data separate is very non-OO'ish in my book. Arne