الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال في اللينكد لست !

بدأه obscureboy في 4 نوفمبر 2008 · 10 رد · 1,187 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أنا طالب في المرحلة الجامعية وحاليا بأدرس جافا 2

حاليا بندرس اللينكد لست

وعندنا واجب

الحمد الله تقريبا حليته كله باستثناء فقرة بسيطة جدا

المطلوب :

ميثود get من نوع object ياخذ بارميتر int واللي هو الإندكس ويرجع الأوبجكت الموجود في هذا الإندكس

المشكلة :

الميثود هذا من نوع object يعني رح يرجع أوبجكت من نوع Object

وأنا أبغاه يرجع أوبجكت من أي نوع

المشروع عبارة عن كلاس اسمه TodoItem وكلاس آخر فيه كود اللينكد لست و tow interfaces

والمطلوب إنك تسوي لينكد لست من نوع TodoItem لكن لما نجي للمين ميثود

وننادي الميثود get

الميثود يرجع أوبجكت من نوع أوبجكت مع إنه المفروض يكون من نوع TodoItem عشان نقدر نتعامل مع الأوبجكت ونعدل فيه

أرجوكم ساعدوني بسرعة

محاولتي في المرفقات

#2

كل ما عليك تعمله

أنك تعمل casting للكائن من النوع object إلى كائن من نوع ToDoItem

على فكرة لا يوجد مرفقات

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#3

معليش ماعملت رفع

هذي هيا في المرفقات

للعلم إني عملت كاستنغ بس مانفع

ياريت تشيك على الكود كذا

HW8.rar

#4

طيب مشكلتك أين تظهر بالضبط

أرني المقطع الذي فيه المشكلة

مع التوضيح على قدر ما تستطيع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#5
public Object get(int index) throws ListIndexOutOfBoundsException

	{	
		Object curr = head;

		if(index>=0 && index <=size())
		{	if(index == 0)
				return head;
			else
			{
				for(int i = 0;i<index;i++)
				{
					curr=((TodoItem)curr).getNext();
				}

				return  ((TodoItem)curr);
			}
		}
		else
		{
			throw new ListIndexOutOfBoundsException("List index out of bounds on get");
		}
	}

هذا الكود حق الجيت ميثود رح يرجع أوبجكت تايب

المشكلة هي كالتالي

في كلاس الدرايفر

رح تلاقي أكواد فيها كاست المفروض مايكون فيها كاست لكن أنا حاليا مسويلها كاست

مثلا

((TodoItem)list.get(0)).getPriority()

ميثودين جيت برويورتي وميثود جيت ديسكريبشن لازم تسوي كاستنغ عشان تقدر تستدعيهم

المفروض في الواجب إنو ميثود get ترجع أوبجكت من أي نوع

يعني المفروض لما نناديها ترجعلنا أوبجكت من نوع TodoItem

الواجب كذة المطلوب فيه

يعني بالظبط زي ميثود get اللي في الآريلست ممكن يرجع إنتجر وممكن يرجع ستنرغ وممكن يرجع أوبجكت من أي نوع

أتمنى تكون وضحت المشكلة

تم تعديل هذه المشاركة بواسطة djug في 4 نوفمبر 2008 في 12:10 — السبب: استعمال الـ tag الخاص بعرض الكود

#6

سلام

بتحتاج تستعمل ال generics

ال class java.util.ArrayList ممكن يعطيك فكرة

وهذا الكود تبعة ArrayList.rar

تم تعديل هذه المشاركة بواسطة javaRocks&Rolls في 4 نوفمبر 2008 في 11:18

#7

صحيح كلام الأخ java

بدون استعمال العموميات generics لن تستطيع فعل ذلك

ابحث هنا في المنتدى

عن دروس الأخت nardin

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#8

السلام عليكم ورحمة الله وبركاته

أقدم الشكر الجزيل لجميع

طبعا بالنسبة لموضوع الحل اللي قدمتوه هو حل مطروح لكن إحنا إلا الآن مادرسناه

الحل اللي أتوصلت له أخيرا هو استخدام نظرية البوليمورفيزم

وهي بما إنه كلاس تودو آيتم من نوع أوبجكت

فممكن نخلي الميثود جيت من نوع تودوآيتم

وبهذي الطريقة رح ترجع أوبجكت من نوع تودوآيتم

لكن يظل الميثود مايرجع غير أوبجكت من هذا النوع

حاليا هذا الخيار هو الحل الأمثل للواجب

يعطيكم العافية جميعا

#9

ممكن تعطونا فكره عن الـ generics?

أحنا للأسف مادرسناها يادوب درسنا الجافا كتطبيق لمفهوم الـoop ومادرسناها غير ترم واحد وياليت لو تعمقنا فيها إلا كانوا يعطونا رؤوس أقلام يعني بالبلدي (الزبده)

فياليت لوتوضحوا أكثرعشان كلنا نستفيد وإن شاء الله تكون في ميزان حسناتكم

أما الروابط كلنا نعرف نبحث بالشيخ قوقل :)

وجزاكم الله خير


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#10

يا محمد

ادخل على موضوع الأخت ناردين

واقرأه

ولو ما فهمت حاجة اسأل واحنا مش راح نقصر

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11

هااااااه يعني الموضوع أنطرح من قبل !

مشكوووووووور حبيب قلبي :pwease:


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

مواضيع مشابهة