Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Intermediate
Apr 24, 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)
   {
      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!
Tareq Shaheen
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap