[jdom-interest] Element.toString() being final

Alex Chaffee guru at edamame.stinky.com
Wed Jul 5 00:27:39 PDT 2000


This is one of the problems I have with Swing: the value of
"toString()" should NEVER be shown to a user in a non-debugging
context.  They mixed code and UI by poviding that short-sighted
shortcut to making a true view.  My advice: if you're not going to go
through the effort of making a custom view (which isn't actually that
hard), then at least make the data objects be wrappers, as in:

public class ElementView {
 public Element element;

 public ElementView(Element e) { this.element = e; }

 public String toString() {
  return "My personal transform of element:" + element.getContent() + "...";
 }
}

Inheritance is, imho, vastly overrated compared to delegation.

 - Alex

P.S. I think toString() should probably be non-final as well. :-)


On Wed, Jun 28, 2000 at 12:16:57PM +0200, Arvidsson, Hokan wrote:
> Hi all,
>  
> The method 'toString()' of class 'Element' is declared as 'final'.
> This causes problem when you use jdom in connection with the Swing JTree
> class.
> When swing displays a tree node, it calls Object.toString(). Then return
> value of Element.toString() is not always suited.
> It would be nice to be able to overwrite Element.toString() in a sub class
> to Element.
> This way you may display your jdom trees very nicely.
>  
>  
> Thanks,
> Håkan
>  
> Håkan Arvidsson
> Consultant
> Software AG Switzerland
> Tel. ..41-1-745 91 11
>  

-- 
Alex Chaffee                       mailto:alex at jguru.com
jGuru - Java News and FAQs         http://www.jguru.com/alex/
Creator of Gamelan                 http://www.gamelan.com/
Founder of Purple Technology       http://www.purpletech.com/
Curator of Stinky Art Collective   http://www.stinky.com/



More information about the jdom-interest mailing list