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

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


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

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


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
Thanks for your registration, follow us on our social networks to keep up-to-date