سؤال

في .NET عندما كان لدي "قيمة" يمكن أن توجد كنوع متعددة ، يمكنني بسهولة استخدام typeconverter للتبديل بين هذه الأنواع (أنواع العملة ، تمثيل بيانات XML مقابل الكائن ، ECT). في جافا ، لست متأكدًا من الطريقة المفضلة للتعامل مع هذا الموقف. هل هناك ما يعادل تكافؤ في جافا؟

هل كانت مفيدة؟

المحلول

بالنسبة لشخص من عالم .NET ، سيكون من المفاجئ أنه لا يوجد واحد خارج الصندوق. وذلك لأن لدينا أشياء مثل البدائية (int ، طويلة) ، إلخ ، مصارعيهم البدائية (عدد صحيح ، طويل وما إلى ذلك) ، التلقائي من int إلى عدد صحيح عندما تحتاج (هذا من JDK 1.5).

لذلك نحن مطورو Java الفقراء يقومون بتحويل الأشياء يدويًا (بعض الأمثلة المذكورة أعلاه بواسطة boolean) أيضًا المتاعب التي لا نهاية لها لاستخدام == المشغلين عند القيام بذلك. على سبيل المثال: يتم تخزين الأعداد الصحيحة Autoboxed من تصل إلى 127.

public void testsimple() {
    Integer a = 124, b = 124, c = 500, d= 500;
    System.out.println(a == b); //prints true in JDK 1.6
    System.out.println(c == d); //prints false in JDK 1.6
}

إذا كنت تكتب تطبيقًا ضخمًا يحتاج إلى الكثير من تحويل البيانات ، فيمكنك كتابة شيء بنفسك. يمكن أن تكون واجهة "typeconverter" من الربيع بداية لائقة.

استخدم هذا الرابط http://imagejdocu.tudor.lu/doku.php؟id=howto:java:how_to_convert_data_type_x_into_type_y_in_java إذا كان لديك بعض المتاعب

نصائح أخرى

حسنًا ، يمكنك كتابة الأشياء ... على سبيل المثال إذا كان لديك كائن قائمة يحتوي على سلاسل .. ستستحوذ على سلسلة من القائمة مثل هذه:

List aList = new List();
aList.add("Hello World);
String s = (String) aList.get(0);

إذا كنت تحاول تحويل سلسلة إلى رقم .. ستفعل شيئًا مشابهًا لهذا:

String aString = "200";
int i = Integer.Parse(aString);

أنا أغش عند تحويل عدد صحيح إلى سلسلة عن طريق القيام بذلك:

int i = 200;
String s = "" + i;

typeconverter حيث تمت إضافته إلى .NET جزئيًا للسماح لمصممي واجهة المستخدم التفاعلية بإظهار القيم كسلسلة وترك المستخدم يقوم بتحرير قيم الأنواع التي لا يفهمها مصمم واجهة المستخدم.

أعتقد أن typeconverter تستخدم أيضًا بواسطة ربط البيانات.

حقيقة أنه يمكنك استخدام typeconverter في برنامجك الخاص للتحويل بين الأنواع التي تعرفها في وقت الترجمة هي تأثير جانبي وليس حالة الاستخدام الأساسي التي تم إنشاؤها لها.

نظرًا لأن Java لم تحاول أبدًا دعم أدوات "RAD" ، فإنه لم يكن لديه نفس الحاجة إلى Typeconverter و PropertyDescriptors وما إلى ذلك. تم تصميم إلى حد ما .NET للسماح بنفس النوع من تطوير واجهة المستخدم التي مكّنها VB6.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top