Avatar ·

كيفية الحصول على قيمة enum من سلسلة نصية في Java؟

مرحباً بالجميع! أنا مبتدئ في Java وواجهت مشكلة أثناء العمل مع التعدادات (enum). لدي enum يصف حالات الطلب: ```java public enum OrderStatus { NEW, PROCESSING, SHIPPED, DELIVERED, CANCELLED } ``` أتلقى سلسلة نصية من المستخدم عبر وحدة التحكم أو من قاعدة البيانات، مثلاً "PROCESSING" أو "processing". أحتاج إلى تحويل هذه السلسلة إلى قيمة enum المقابلة لاستخدامها في منطق التطبيق. المشكلة أنني لا أعرف كيفية القيام بذلك بشكل صحيح. حاولت ببساطة تعيين السلسلة لمتغير من نوع OrderStatus، لكن المترجم يظهر خطأ. سمعت أن هناك طريقة valueOf()، لكنها تطرح استثناء إذا كانت السلسلة لا تطابق اسم الثابت. وماذا لو كانت السلسلة مكتوبة بحالة أحرف مختلفة؟ أو تحتوي على مسافات؟ كيف يمكن معالجة هذه الحالات بشكل صحيح؟ أرجو إرشادي، كيف يمكن الحصول على قيمة enum من سلسلة نصية في Java بطريقة موثوقة وآمنة؟ ويفضل مع أمثلة كود. شكراً مسبقاً.