Home Java Java-tips Data Collections Java Notes: Downcasting

Ask Questions?

View Latest Questions


 
 

Java Notes: Downcasting
Posted on: July 26, 2006 at 12:00 AM
There are a lot of things to like about Java Collections, but there are some weak aspects too.

Java Notes: Downcasting

Collections of Objects - The Dark Side

There are a lot of things to like about Java Collections, but there are some weak aspects too.

  • Slow - No primitives. The elements of all Collections data structures (but not arrays) must be Object or a subclass of Object. Internally, the elements are all upcast to Objects.
  • Ugly - Downcast on the way out.
  • Dangerous - Make No Type Mistake..
  • All methods return a fixed type, so the only type that can work for Vector and others is Object, the anscestor class of all classes. So you have to "downcast" the Object you get back from Vector to the type you put in. Then the compiler will recognize the methods of that type. In principle the compiler could check subclasses for an appropriate method, but it only looks up the inheritance chain because that has no execution-time cost. Downcasting always checks the real class to see if the casting is legal -- after all, you could potentially add different types to a Vector. The new version of Java (known variously as Tiger, 1.5, or 5) implements "generics" (like C++ templates), which automatically do a lot of extra checking. It's expected to be released at the end of the month. So the answer in code to your question is this.outputS += ((YourType)notesV.get(ix)).printOut();
    Copyleft 2004 Fred Swartz MIT License

    Related Tags for Java Notes: Downcasting:
    carraysarrayclasscollectionsdataobjectioobjectsstructmaketypeslowcollectionstructureintsubclasscastelementelementscasprimitivetointernalasteitstructuresnotmitpcpeiminnosubasstamntouttrcajclesemallprimitivesmeinternobjdodownssudowncastcolatkisllivcollectrayarcollectstrupcssrithbcstctsjeprmismionolo