Path: csiph.com!usenet.pasdenom.info!gegeweb.org!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Eric Sosman Newsgroups: comp.lang.java.programmer Subject: Re: Fixing "typos" in enums... Date: Mon, 18 Nov 2013 13:45:06 -0500 Organization: A noiseless patient Spider Lines: 42 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 18 Nov 2013 18:45:06 +0000 (UTC) Injection-Info: mx05.eternal-september.org; posting-host="858a9d65d95f4ea4d355bd116aa2cdbf"; logging-data="18730"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/i5b/DMZW8SnvkDuRCSgi0" User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 In-Reply-To: Cancel-Lock: sha1:Z8qIp5CU1YX7d0VzAqB4bJL+2eI= Xref: csiph.com comp.lang.java.programmer:26542 On 11/18/2013 1:25 PM, Andreas Leitgeb wrote: > Jan Burse wrote: >> Andreas Leitgeb schrieb: >>> // public enum Foo { FURST, SECOND } >>> public enum Foo { FIRST, SECOND; public static final FURST = FIRST; } >> >> Maybe mark FURST also as deprecated. >> And put a comment that says what should >> be used instead of FURST, which could >> go into javadoc. > > Definitely a good idea, which I forgot about. Thanks for reminding! > >> In as far APIs behave similar as natural >> language since for whatever reason synonyms >> develop, and even word meanings disappear >> over the time. Overloading of methods even >> allows a form of polysemy. > > It would be nice, if enum had the concept of synonyms: > > - each synonym is an alias for a particular constant > - synonyms would be recognized by valueOf(String) > - synonyms could be annotated as @Deprecated > - synonyms could be used in a switch, but then the > canonical name (or any other synonym for the same > constant) must not be used in the same switch. > > Well, I know it's not going to happen. Just wanted it off my chest ;-) It'd make a mess of EnumMaps, too ... I don't think there's any single Right Way to address your problem, no one-size-fits-all solution. Elsethread it's written that a published API is "set in stone," but there are many kinds of stone. Of all posters to this thread, only you know whether the stone is obsidian or talc; only you know how hard a tool is required to scratch it. -- Eric Sosman esosman@comcast-dot-net.invalid