+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 پاسخ 732 بازدید
0 امتیاز
1 پاسخ 536 بازدید
+1 امتیاز
1 پاسخ 494 بازدید
+1 امتیاز
1 پاسخ 1.2هزار بازدید
+1 امتیاز
1 پاسخ 4.3هزار بازدید
0 امتیاز
1 پاسخ 554 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط bmabma (2 امتیاز)
0 امتیاز
1 پاسخ 768 بازدید
+2 امتیاز
1 پاسخ 787 بازدید
...