I'm -1 on this.  

By default, I think the ActionForms toString should be the default
Object.toString.  If you need/desire you can easily still create a base
support class for your projects that implement the reflection based
toString you suggest.  

The reason I'm anti- this is that it will cause (in some cases) field
values to be unexpectedly logged.  And many times there are fields that
you don't want logged.  i.e. passwords, credit cards, etc.  

BTW - a similar utility is also available in commons-lang -
ToStringBuilder.  

- Mike

On Wed, 2004-10-06 at 23:29, Frank W. Zammetti wrote:

> Obviously I made a typo in the subject... this applies to the ActionForm 
> base class.
> 
> Did anyone have any comment on this?  I've noticed a lack of activity on 
> the list lately...
> 
> > Hello all... 
> > 
> > I find myself all the time overloading toString() of my ActionForms for debugging
> > purposes, so I can easily dump the current state of the object.  I had been doing
> > this for each ActionForm class, specifically for it, but it ocurrs to me that a
> > general-purpose reflection-based approach would be better.
> > 
> > I'd like to propose adding this functionality to the ActionForm base class.  Here's
> > the code I propose adding:
> > 
> > import java.lang.reflect.Field;
> > public static final AVERAGE_FIELD_SIZE = 25;
> > public String toString() {
> >   String str = "";
> >   StringBuffer sb = null;
> >   try {
> >     Field[] fields = this.getClass().getDeclaredFields();
> >     sb = new StringBuffer(fields.length * AVERAGE_FIELD_SIZE);
> >     for (int i = 0; i < fields.length; i++) {
> >       if (sb.length() > 0) { sb.append(", "); }
> >       sb.append(fields[i].getName() + "=" + fields[i].get(this));
> >     }
> >     str = sb.toString().trim();
> >   } catch (Exception e) { 
> >     str = "Exception in ActionForm.toString() : " + e;
> >   }
> >   return str;
> > }
> > 
> > The value of AVERAGE_FIELD_SIZE is a matter of debate, and it's of course 
> > impossible
> > to come up with a real value, so something reasonable is the answer.  25 struck me
> > as a decent starting point.
> > 
> > What does everyone think?  I find this functionality to be very useful in my work,
> > and I suspect others may as well.  The code doesn't add any dependencies outside
> > J2SE, and it's certainly simple enough as to not be particularly risky.
> > 
> > Thanks all!
> > 
> > Frank W. Zammetti
> > Founder and Chief Software Architect
> > Omnytex Technologies
> > http://www.omnytex.com
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to