ورود

View Full Version : نحوه ارسال کلاس به عنوان پارامتر و سپس ایجاد



keyhan.taktaz
یک شنبه 22 دی 1392, 05:09 صبح
دوستان چطور میشه یک کلاس رو به عنوان پارامتر به کلاس دیگه ارسال کرد و در اون یک شی از اون کلاس ایجا کرد؟

ما 2 تا کلاس داریم ، نام کلاس اول Login هست و نام کلاس دوم Test.
تو کلاس دوم یک شی از کلاس لاگین به این صورت اجرا میشه و یکی از توابع اون اجرا میشه:


Login login = (Login)context;
login.checkSuccess(temp);

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

rubiks.kde
یک شنبه 22 دی 1392, 11:18 صبح
میتونید این کار رو با استفاده از اسم کلاس هم انجام بدید.یعنی اسم کلاس رو بفرستید به تابع بعد یک شی از اون بسازید.

Class<?> clazz = Class.forName(className);
Constructor<?> ctor = clazz.getConstructor(String.class);
Object object = ctor.newInstance(new Object[] { ctorArgument });

یه راه دیگه ایی هم که دارید اینه که یه baseClass به عنوان کلاس پایه داشته باشید و کلاس هایی که میخواهید ارسال کنید رو از این کلاس مشتق کنید و ورودی اون توابع رو هم همین baseClass بدید.حالا هرکدوم از کلاس ها رو به تابع بفرستید مشکلی نداره.

keyhan.taktaz
یک شنبه 22 دی 1392, 12:58 عصر
الان با استفاده از این کد چطوری تابعی رو از کلاس فاخانی کنم؟دقیقا مثل کد خودم

keyhan.taktaz
یک شنبه 22 دی 1392, 13:00 عصر
از این کد اصلا سر در نیاوردم.:افسرده: