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

مساعدة في عمل كومبايل ل ملف Class

بدأه Java Time في 16 أكتوبر 2008 · 4 رد · 631 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أثناء عمل كومبايل لـ أحد ملفات الـ كلاس .. تظهر لي الرساله التاليه :

Methods can't be redefined with a different return type: java.lang.Object a() was boolean a()

public synchronized Object a()

^

هذا هو كود الكلاس

 

package Lole;


public class ae
{

	public synchronized boolean a()
	{
		return d == a;
	}

	public synchronized Object a()
	{
		if(d == a)
		{
			throw new ArrayIndexOutOfBoundsException("Queue is empty");
		} else
		{
			Object obj = b[d];
			b[d] = null;
			d = (d + 1) % b.length;
			c--;
			return obj;
		}
	}

	public synchronized void a(Object obj)
	{
		if((a + 1) % b.length == d)
		{
			Object aobj[] = new Object[2 * (b.length - 1) + 1];
			System.arraycopy(((Object) (b)), d, ((Object) (aobj)), 0, b.length - d);
			if(d != 0)
				System.arraycopy(((Object) (b)), 0, ((Object) (aobj)), b.length - d, d - 1);
			d = 0;
			a = c;
			b = aobj;
		}
		b[a] = obj;
		a = (a + 1) % b.length;
		c++;
	}

	public synchronized void f()
	{
		for(int i = 0; i < b.length; i++)
			b = null;

		d = a = 0;
		c = 0;
	}

	public ae()
	{
		this(10);
	}

	public ae(int i)
	{
		d = 0;
		a = 0;
		c = 0;
		b = new Object[i + 1];
	}

	private int d;
	private int a;
	private int c;
	private Object b[];
}

اتمنى افادتي بسبب المشكله وطريقه التخلص منها لعمل كومبايل سليم للكلاس

اشكر لكم تعاونكم مقدماً :wub:

* ملاحظة هامه جداً : اتمنى أن تكون الإجابه تفصيليه .. لانني مبتدئ في لغة الجافا

تم تعديل هذه المشاركة بواسطة Java Time في 16 أكتوبر 2008 في 12:41

#2

غير اسم احدى الدالتين a

وذلك لأن الجافا لا تدعم overload على return value

تحياتي

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

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

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

728x90.png

#3

حل آخر دون تغيير اسم الدالة (ربما يجب استعمال الـoverload )

و هو تمرير متغير ما إلى الدالة و يكون نوع هذا المتغير مختلفا في الدالتين

#4

جزيل الشكر والعرفان لكما

ولكن لم تتضح الصوره بالنسبه لي كمبتدئ

اتمنى التكرم بتوضيح التعديل على الكلاس المرفق بالموضوع

#5

هاتان الدالتان يجب تغيير اسم إحداهما

	public synchronized boolean a()
	{
		return d == a;
	}

	public synchronized Object a()
	{
		if(d == a)
		{
			throw new ArrayIndexOutOfBoundsException("Queue is empty");
		} else
		{
			Object obj = b[d];
			b[d] = null;
			d = (d + 1) % b.length;
			c--;
			return obj;
		}
	}

تحياتي

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

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

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

728x90.png

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