PDA

View Full Version : استفاده از کلاس دلخواه به عنوان نوع متغیر... (پاس داده شده به متد)



armsoftpc
چهارشنبه 29 مرداد 1393, 11:44 صبح
با سلام
مشکل اصلی اینجاست که کلاس خارجی رو نمی تونی به عنوان نوع در متغیرات استفاده کنی.
حالا راه حل دوستان چیه؟ اصلا چه روشی پیشنهاد می کنند، برای اینکه کلاسی رو پاس بدیم به یه تابع و بعد از اون پارامتر به عنوان نوع متغیر استفاده کنیم.:متفکر:
class MyActivity
{
public void onCrate()
{
DataExchange de = new DataExchange(BookRow.Class);
....
}

}

public class BookRow
{
public String book_id;
public String book_title;
}


class DataExchange<T>
{
public DataExchange(Class<T> SendedClass)
{
SendedClass[] s = new SendedClass[5]; // مشکل اصلی اینجاست که کلاس خارجی رو نمی تونی به عنوان نوع در متغیرات استفاده کنی
...
}

}
در پناه حق موفق باشید.

parvizwpf
چهارشنبه 29 مرداد 1393, 11:54 صبح
بنظرم باید یه کلاسی از نوع BookRow تعریف بشه در اکتیویتی

armsoftpc
چهارشنبه 29 مرداد 1393, 12:02 عصر
بنظرم باید یه کلاسی از نوع BookRow تعریف بشه در اکتیویتی



منظورتون رو متوجه نمیشم، قصد ما جداسازی کدها از هم کلاس BookRow هم اتفاقا در کلاس اکتیویتی قرار داره و کلاس DataExchange در فایلی جدا گانه. مسئله ی اصلی این فیلتر عبور از تابع است.

armsoftpc
چهارشنبه 29 مرداد 1393, 12:16 عصر
دوستان راه حلی به ذهنشون نمیرسه....
این سوال خیلی به نظرم کاربردی بیاد که بتونی کلاسی رو به کلاس دیگه سند کنه و از کلاس دوم به عنون نوع استفاده کنی.

poorman
چهارشنبه 29 مرداد 1393, 18:39 عصر
سلام

من توی این زمینه اطلاعی ندارم، فقط صرفا چون درخواست بررسی کردید من یک جستجو کردم

به این نتیجه رسیدم


void MyMethod(Class className)
{
try {
Object obj = className.newInstance();
//obj is a newly created object of the passed in type
}
catch (Exception ex) { }
}


منبع : http://stackoverflow.com/questions/15941957/passing-class-type-as-parameter-and-creating-instance-of-it

Nevercom
چهارشنبه 29 مرداد 1393, 21:03 عصر
من هرچقدر سوال رو میخونم و کد رو نگاه می کنم باز هم متوجه نمیشم که سوال چیه و درواقع شما قصد دارید چکار کنید.
هدف از اینکه یک کلاس رو پاس بدید به متد چی هست ؟

abbasalim
چهارشنبه 29 مرداد 1393, 21:11 عصر
من هرچقدر سوال رو میخونم و کد رو نگاه می کنم باز هم متوجه نمیشم که سوال چیه و درواقع شما قصد دارید چکار کنید.
هدف از اینکه یک کلاس رو پاس بدید به متد چی هست ؟

سلام
دقیقا منم همین مشکل رو دارم میشه یه کم واضح تر بگید؟

poorman
پنج شنبه 30 مرداد 1393, 02:02 صبح
ایشون میخوان یک نوع رو به یک تابع بفرستن و بعد از اون نوع یک متغیر بسازن

پس در اینجا کلاس رو به عنوان یک متغیر میفرستن که مشخص کننده نوع هست

abbasalim
پنج شنبه 30 مرداد 1393, 11:14 صبح
ایشون میخوان یک نوع رو به یک تابع بفرستن و بعد از اون نوع یک متغیر بسازن

پس در اینجا کلاس رو به عنوان یک متغیر میفرستن که مشخص کننده نوع هست
خوب مشکل کجاست؟

poorman
پنج شنبه 30 مرداد 1393, 12:11 عصر
:لبخند: مشکل اینجا بود که نمیدونستن چطور این کار رو بکنن !!!

حالا اون قطعه کدی که من گذاشتم فک کنم جواب بده برای این کار