Creating an ArrayList that Works with Objects of a Specific Class

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)   {      arl.add(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!


Share the Post: