رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

برنامه نویسی جاوا جنریک در J2SE  معرفی شده است.

قبل از جنریک ها، ما می توانیم هر نوع اشیاء در مجموعه به عنوان مثال غیر عمومی را ذخیره کنید. حالا جنریک ها، نیروهای برنامه نویس جاوا برای ذخیره نوع خاصی از اشیاء هستند.

استفاده از جاوا جنریک

عمدتا 3 مزایای استفاده از جنریک وجود دارد. آنها عبارتند از:

1) نوع ایمن: ما می توانیم تنها یک نوع از اشیاء را در جنریک نگه داریم.

2) تبدیل نوع یا casting مورد نیاز نمی باشد.

قبل از جنریک :

List list = new ArrayList();  
list.add("hello");  
String s = (String) list.get(0);//typecasting  

بعد از جنریک :

List<String> list = new ArrayList<String>();  
list.add("hello");  
String s = list.get(0); 

3) چک کردن زمان کامپایل

List<String> list = new ArrayList<String>();  
list.add("hello");  
list.add(32);//Compile Time Error  

Syntax برای تعریف مجموعه جنریک :

ClassOrInterface<Type>  

مثال کامل از جنریک در جاوا : 

import java.util.*;  
class TestGenerics1{  
public static void main(String args[]){  
ArrayList<String> list=new ArrayList<String>();  
list.add("rahul");  
list.add("jai");  
//list.add(32);//compile time error  
  
String s=list.get(1);//type casting is not required  
System.out.println("element is: "+s);  
  
Iterator<String> itr=list.iterator();  
while(itr.hasNext()){  
System.out.println(itr.next());  
}  
}  
}  

کلاس های جنریک 

یک کلاس است که می تواند به هر نوع اشاره کند و به عنوان کلاس جنریک شناخته شود. در اینجا، ما با استفاده از پارامتر نوع T یک کلاس عمومی می سازیم.

class MyGen<T>{  
T obj;  
void add(T obj){this.obj=obj;}  
T get(){return obj;}  
}  

نوع T نشان می دهد که می توانید به هر نوع  داده(مانند رشته، عدد صحیح، کارمند و غیره) مراجعه کنید.

استفاده از کلاس جنریک : 

class TestGenerics3{  
public static void main(String args[]){  
MyGen<Integer> m=new MyGen<Integer>();  
m.add(2);  
//m.add("vivek");//Compile time error  
System.out.println(m.get());  
}}  

متدهای جنریک

مانند کلاس های جنریک ما می توانیم متد هایی تعریف کنیم.مثال زیر تعریف متد جنریک است :

public class TestGenerics4{  
  
   public static < E > void printArray(E[] elements) {  
        for ( E element : elements){          
            System.out.println(element );  
         }  
         System.out.println();  
    }  
    public static void main( String args[] ) {  
        Integer[] intArray = { 10, 20, 30, 40, 50 };  
        Character[] charArray = { 'J', 'A', 'V', 'A', 'T','P','O','I','N','T' };  
  
        System.out.println( "Printing Integer Array" );  
        printArray( intArray  );   
  
       System.out.println( "Printing Character Array" );  
        printArray( charArray );   
    }   
}  

 

 

ویرایش شده توسط Omid Zakeri
لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...