Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!eternal-september.org!feeder.eternal-september.org!.POSTED!not-for-mail From: Daniele Futtorovic Newsgroups: comp.lang.java.programmer Subject: Re: borrowing Constants Date: Mon, 26 Sep 2011 01:22:02 +0200 Organization: A noiseless patient Spider Lines: 33 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Injection-Date: Sun, 25 Sep 2011 23:23:35 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="OPYk7znjR0ATEbqDEK73tg"; logging-data="7772"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18nk2vGw9PqoHtaPqFm0hQb" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.2.22) Gecko/20110902 Thunderbird/3.1.14 In-Reply-To: Cancel-Lock: sha1:jdlh+69+6DEJxsvZtKDHApJUGOw= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:8319 On 24/09/2011 02:40, Roedy Green allegedly wrote: > If you have some code like this: > > class A > { > static String VERSION = "1.0b"; > } > > and > class B > { > static String VERSION = A.VERSION; > } > > When you use Class B, does all of class A get instantiated? > Does all of class A get put in B's jar? > > > If so, it suggests you are better off to have a tiny common class and > have A and B reference it. If someone showed me that code (class B) and told me they didn't intend to include class A in the runtime, my first question would be: "then why do you reference it?" If you want to decouple, decouple properly. Use a common class, a resource file, a service provider interface, whatever. But don't rely on intrinsics -- even if in this case those are fairly basic and well-understood intrinsics. That's just begging for trouble. -- DF. Determinism trumps correctness.