Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #15736
| From | Lew <lewbloch@gmail.com> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Closing/Despose of JFrame |
| Date | 2012-06-28 17:42 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <0349f13f-176e-4755-953e-de41fc427ae1@googlegroups.com> (permalink) |
| References | <5752befc-aca1-46f9-81d9-f3992bf756e7@googlegroups.com> <jshpac$3v7$1@dont-email.me> <bd012aeb-0dcf-44e3-bb8c-12dc70c8c473@googlegroups.com> <slrnjupqa1.u9l.avl@gamma.logic.tuwien.ac.at> |
Andreas Leitgeb wrote:
> Lew wrote:
> > Dying old:
> > public class Example
> > {
> > Collection<Foo> foos = getSomeFoos();
> > Bar bar; // the elephant in the room
> > public void run()
> > {
> > for (Foo foo : foos)
> > {
> > bar = foo.obtainBar();
> > // do whatever with 'bar'
> > // 'bar' does not fall out of scope
> > // The last reference from the loop lasts as
> > // long as this instance does, and could
> > // tenure the 'Bar' it points to
> > }
> > }
> > }
> > [...]
> > There are some notable urban
> > legends out there, such as the advice to set all references
> > to 'null' when finished with them. There are specific times
> > to do so, such as when a collection such as a 'Stack' is
> > holding hidden references ("packratting", or the Java version
> > of a memory leak). [...]
>
> ...or right after the loop in above "dying old"-Example, if for
> whatever reason there really was some need to have "bar" as a
> field, instead of as a local var within the loop.
True, but dangerous. If you are nulling out the reference after the loop
anyway, there is a low probability that a member variable is the right
scope. I can think of reasons why one might do that, but they all seem
like tangled and ill-advised code to me.
The scope and lifetime of the variable should match the scope and
lifetime of the need for its reference. The scenario you describe seems
to violate that. I say "seems to" because sure, there very well could be
cases for it. But they all would (or should) fit into the "scope and lifetime
should match" rule. So if you do see a situation where the scope is the
instance, and/or the lifetime matches that of the enclosing instance, then
a member variable is correct even should Lew feel that your code is tangled
and ill advised.
OTOH, you shouldn't be too quick to dismiss my insight into the matter.
--
Lew
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Closing/Despose of JFrame Jesper Johnsen <jsjohnsen.dk@gmail.com> - 2012-06-28 06:38 -0700
Re: Closing/Despose of JFrame markspace <-@.> - 2012-06-28 07:22 -0700
Re: Closing/Despose of JFrame Lew <lewbloch@gmail.com> - 2012-06-28 09:47 -0700
Re: Closing/Despose of JFrame Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-06-28 23:31 +0000
Re: Closing/Despose of JFrame Lew <lewbloch@gmail.com> - 2012-06-28 17:42 -0700
Re: Closing/Despose of JFrame Gene Wirchenko <genew@ocis.net> - 2012-06-28 19:55 -0700
Re: Closing/Despose of JFrame Lew <lewbloch@gmail.com> - 2012-06-29 10:19 -0700
Re: Closing/Despose of JFrame Gene Wirchenko <genew@ocis.net> - 2012-06-29 13:24 -0700
Re: Closing/Despose of JFrame Lew <lewbloch@gmail.com> - 2012-06-29 13:36 -0700
Re: Closing/Despose of JFrame Roedy Green <see_website@mindprod.com.invalid> - 2012-06-29 05:31 -0700
Re: Closing/Despose of JFrame Lew <lewbloch@gmail.com> - 2012-06-28 12:46 -0700
Re: Closing/Despose of JFrame "John B. Matthews" <nospam@nospam.invalid> - 2012-06-28 22:32 -0400
csiph-web