قبل از کلاسهای عمومی برای هر متغیر باید یک نوع خاص تعریف میکردیم.به عنوان مثال برای کلاسهای ظرف این امر مشکل بود زیرا را آسانی برای ایجاد یک container وجود نداشت که نوعهای خاصی از اشیا را بپذیرد.کلاسهای عمومی اجازه میدهند نوع زمان کامپایل ،بدون نیاز به ایجاد تعداد زیادی از container ،چک شود.همه آنها کدهای مشابهی دارند.