Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #15736

Re: Closing/Despose of JFrame

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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