RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Java
Expertise: Intermediate
Apr 25, 2001

Creating an ArrayList that Works with Objects of a Specific Class

Container classes, like java.util.ArrayList, are general purpose object holders in the sense that they hold java.lang.Object references and not class specific references. Therefore, you can insert any object type in such containers. But what if we need an ArrayList that works with a specific class?

Here is the code:
public class StringArrayList
   private ArrayList arl= new ArrayList();

   public void add(String str)

   public String get(int index)
      return (String) arl.get(index);

   public int size()
      return arl.size();

This encapsulates an ArrayList in StringArrayList and provides methods that act as surrogates to the ArrayList methods, thus ensuring only String objects are inserted and String objects are returned to the class's user. This eliminated the need to downcast.

One final note: If you plan to use something like the above class and add other methods, never provide a method like this:
public ArrayList getAll()
   return arl;

This method is provides a reference to the encapsulated ArrayList allowing the class' user to use this reference and insert objects( of any class) directly, which defeats the whole idea!
Tareq Shaheen
Close Icon
Thanks for your registration, follow us on our social networks to keep up-to-date