+1 امتیاز
قبل در برنامه نویسی توسط (10 امتیاز)
ویرایش شده قبل توسط

من میخوام یک برنامه بنویسم که به صورت دینامیک اپراتورهای ریاضی رو پشتیبانی کنه. برای این کار من یک اینترفیس Operator تعریف کردم که متد calculate رو معرفی کرده حال برای اپراتورها من 4 کلاس پیاده سازی کردم و فایل .class (کامپایل شده) اونها رو داخل یک فولدر گذاشتم حالا چطوری میتونم از بین این فایل های کامپایل شده با توجه به اوپراتور ورودی ام کلاس درست رو انتخاب کنم؟برای توضیحات بیشتر باید اینگونه عرض کنم

قبلا برنامه من جوری کار میکرد که برای تشخیص نوع عملگرها از Map استفاده کرده بودم به اینصورت :

private static Map<String,Operator> operatorMap = new HashMap<String,Operator>();
	static
	{
		operatorMap.put("+", new Plus());
		operatorMap.put("-", new Minus());
		operatorMap.put("*", new Multiply());
		operatorMap.put("/", new Divide());
	}

حال برای دسترسی به کلاس مناسب از دستور زیر استفاده کردم:

output = operatorMap.get(elementInExpression[2]).calculate(firstNumber,secondNumber);

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

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)

اگر سورس کد چهار اپراتور همراه پروژه اصلی است و با هم کامپایل می شوند، این سوال را نگاه کنید.

اما اگر می خواهید از فایل های کامپایل شده چهار اپراتور در زمان runtime در یک کلاس دیگر استفاده کنید برای لود کردن یک فایل کلاس در زمان اجرا در برنامه جاوا از این سوال و برای فراخوانی متد calculate کلاس لود شده از این سوال استفاده کنید.

قبل توسط (10 امتیاز)
برنامه من باید با Reflection API جاوا پیاده سازی بشه نه URLClassLoader
قبل توسط (1.1هزار امتیاز)
برای لود کردن فایل های class (کامپایل شده) در جاوا راهی جر URLClassLoader وجود ندارد. پس از لینک اول درون جواب استفاده کنید.

سوالات مشابه

0 امتیاز
1 پاسخ 611 بازدید
0 امتیاز
1 پاسخ 454 بازدید
+1 امتیاز
1 پاسخ 394 بازدید
+1 امتیاز
1 پاسخ 1.1هزار بازدید
+1 امتیاز
1 پاسخ 4.1هزار بازدید
0 امتیاز
1 پاسخ 465 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط bmabma (2 امتیاز)
0 امتیاز
1 پاسخ 647 بازدید
+2 امتیاز
1 پاسخ 658 بازدید
...