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


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

Re: startup code

From Eric Sosman <esosman@ieee-dot-org.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: startup code
Date 2012-08-29 17:14 -0400
Organization A noiseless patient Spider
Message-ID <k1m0mu$1bl$1@dont-email.me> (permalink)
References (5 earlier) <DdmdnV3jtJyVqKPNnZ2dnUVZ_jCdnZ2d@earthlink.com> <2667fee7-d27c-4d64-8fcc-501c188a2d33@googlegroups.com> <wN6dnbtMWafH-6PNnZ2dnUVZ_rOdnZ2d@earthlink.com> <k1lr9i$t23$1@dont-email.me> <aa7b30Fa7aU1@mid.individual.net>

Show all headers | View raw


On 8/29/2012 4:06 PM, Robert Klemme wrote:
> On 29.08.2012 21:41, Eric Sosman wrote:
>>      "What she said," with a stylistic suggestion: If the code to
>> create the bitmap grows to more than a very few lines, consider
>> putting them in a private static method of their own and calling
>> that method from the static initializer:
>>
>>      class Thing {
>>          ...
>>          static {
>>              createTheBitmap();
>>          }
>>
>>          /** Called only during class initialization. */
>>          private static void createTheBitmap() {
>>              // create the bitmap
>>          }
>>          ...
>>      }
>>
>> Doesn't change the code's meaning in any significant way, but
>> may make it easier to debug/adapt/refactor later on.
>
> If you go through the effort why then call it from an initializer?  Why
> not just via the field declaration that holds the bitmap?
>
> class Thing {
>    private static final BitMap bm = loadTheBitmap();
>
>    private static BitMap loadTheBitmap() {
>      ...
>      return ...;
>    }
> }
>
> Assuming that the state will be held in this class.

     If the result of "create the bitmap" is a single value that
is stored in a single field, sure -- but that's an assumption.
For more general class initialization I think it would be
misleading to hide the setup of several fields behind what
looks like an initializer for just one of them.

-- 
Eric Sosman
esosman@ieee-dot-org.invalid

Back to comp.lang.java.programmer | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

startup code bob smith <bob@coolfone.comze.com> - 2012-08-28 11:48 -0700
  Re: startup code Roedy Green <see_website@mindprod.com.invalid> - 2012-08-28 11:53 -0700
    Re: startup code Lew <lewbloch@gmail.com> - 2012-08-28 14:00 -0700
      Re: startup code Robert Klemme <shortcutter@googlemail.com> - 2012-08-28 23:48 +0200
        Re: startup code Lew <lewbloch@gmail.com> - 2012-08-28 15:25 -0700
        Re: startup code Patricia Shanahan <pats@acm.org> - 2012-08-29 08:27 -0700
          Re: startup code bob smith <bob@coolfone.comze.com> - 2012-08-29 11:18 -0700
            Re: startup code Patricia Shanahan <pats@acm.org> - 2012-08-29 11:58 -0700
              Re: startup code Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-29 15:41 -0400
                Re: startup code Lew <lewbloch@gmail.com> - 2012-08-29 13:04 -0700
                Re: startup code Robert Klemme <shortcutter@googlemail.com> - 2012-08-29 22:06 +0200
                Re: startup code Eric Sosman <esosman@ieee-dot-org.invalid> - 2012-08-29 17:14 -0400
      Re: startup code Roedy Green <see_website@mindprod.com.invalid> - 2012-08-29 00:21 -0700
        Re: startup code Patricia Shanahan <pats@acm.org> - 2012-08-29 02:42 -0700
          Re: startup code Patricia Shanahan <pats@acm.org> - 2012-08-29 02:54 -0700
    Re: startup code Arne Vajhøj <arne@vajhoej.dk> - 2012-08-28 19:20 -0400
  Re: startup code Jeff Higgins <jeff@invalid.invalid> - 2012-08-28 15:22 -0400
  Re: startup code Arne Vajhøj <arne@vajhoej.dk> - 2012-08-28 19:19 -0400

csiph-web