طريقة جافا إلى سلسلة
toString
يتم استخدام الطريقة في Java لتوفير معلومات واضحة وكافية حول كائن ( Object
) في نموذج يمكن قراءته بواسطة الإنسان. toString
يمكن أن يساعد تجاوز الطريقة الصحيحة في تسجيل برنامج Java وتصحيح أخطائه من خلال توفير معلومات قيمة ومهمة. نظرًا لأنه toString()
تم تعريفه في java.lang.Object
فئة وأن تطبيقه الافتراضي لا يوفر الكثير من المعلومات، فمن الأفضل دائمًا تجاوز هذه الطريقة في فئة تابعة. في الواقع، إذا كنت تقوم بإنشاء فئة مهمة أو عامة من النوع Order
، Trade
أو Employee
، فتجاوز دائمًا يساوي و hashCode و CompareTo والأساليب toString
في Java. بشكل افتراضي، ينتج التنفيذ toString
مخرجات في النموذج ، package.class@hashCode
على سبيل المثال، على سبيل المثال، ستطبع طريقة الفصل test.Country@18e2b22 حيث 18e2b22 هو رمز التجزئة للكائن بالنظام الست عشري، إذا قمت باستدعاء طريقة hashCode فسوف تُرجع 260943370 وهو المعادل العشري لـ 18e2b22. هذه المعلومات ليست مفيدة بشكل خاص عند البحث عن مشكلة. دعونا نلقي نظرة على مثال واقعي حيث تحتاج إلى العثور على مشكلة في اتصال الشبكة لديك، في حالة رغبتك في معرفة المضيف والمنفذ الذي يحاول نظامك الاتصال به وما إذا كان يتم طباعة المعلومات الافتراضية فقط أم لا ، فسيكون ذلك من المستحيل تخيل المشكلة الحقيقية، ولكن مع التنفيذ المتجاوز يمكنهم توفير معلومات مفيدة مثل اسم المضيف ورقم المنفذ. سنقدم في برنامج Java التعليمي هذا بعض النصائح حول تجاوز الطريقة باستخدام أمثلة التعليمات البرمجية. toString()
toString()
Country
Socket
ServerSocket
toString
toString
toString
كيفية تجاوز طريقة toString في Java:
اطبع التاريخ المنسق (أي يوم/شهر/سنة) بدلاً من القيمة الأولية. يعد هذا تلميحًا مفيدًا جدًا عند تجاوز طريقة JavatoString
. لا يُخرج toString()
الفصل العادي تاريخًا منسقًا ويتضمن الكثير من التفاصيل التي لا تكون مطلوبة دائمًا. java.util.Date
إذا كنت تستخدم DateFormat جزئيًا ، على سبيل المثال. dd-MM-yy في تطبيقك، فأنت بالتأكيد تريد رؤية هذا التنسيق بدلاً من التنسيق الافتراضي. لا يقوم IDE عادةً بإنشاء مخرجات منسقة Date
وهذا شيء ستحتاج إلى القيام به بنفسك، ولكنه يستحق ذلك. اقرأ كيفية طباعة التاريخ بتنسيق ddMMyy في Java للحصول على تفاصيل حول التنسيق Date
في Java. يمكنك أيضًا استخدام فئة SimpleDataFormat أو مكتبة وقت Joda Date لهذا الغرض.
توثيق تنسيق toString
إذا لم تقم طريقتكtoString()
بإخراج البيانات كقيمة field=value، فمن الجيد توثيق تنسيق الإخراج toString
، خاصة بالنسبة للكائنات المهمة مثل الموظف أو الطالب. على سبيل المثال، إذا قام أسلوب toString()
الفصل Работник(Employee)
بطباعة " John-101-Sales-9846387321 "، فمن الممارسات الجيدة تحديد التنسيق كـ "name-id-department-contact"، ولكن في نفس الوقت لا تسمح للعميل بالحصول على المعلومات من الطريقة toString()
، يجب عليك دائمًا توفير الطرق المناسبة لاسترداد البيانات، مثل و getName()
و وما إلى ذلك getId()
، getContact()
نظرًا لأن المعلومات التي تم الحصول عليها من toString()
تمثيل الكائن هشة وعرضة للخطأ، لذلك يجب أن يكون لدى العميل دائمًا مسار نظيف للحصول على المعلومات معلومة.
استخدم StringBuilder لإنشاء مخرجات toString()
إذا كنت تكتب تعليمات برمجية لطريقة ماtoString()
في Java، فاستخدم StringBuilder لإضافة سمات فردية. إذا كنت تستخدم IDE مثل Eclipse أو Netbeans أو IntelliJ، فإن استخدام StringBuilder
الطريقة and append()
بدلاً من عامل التشغيل + للإنشاء toString
هو أيضًا الحل الأمثل. افتراضيًا، يتم إنشاء كل من Eclipse وNetbeans toString
باستخدام عامل التسلسل.
باستخدام التعليق التوضيحيOverride
يعد استخدام@Override
تجاوز الطريقة في Java أحد أفضل الممارسات في اللغة. لكن هذا التلميح ليس مهمًا كما هو الحال في حالة تجاوز التابع والطرق equals()
، compareTo()
نظرًا لأن التحميل الزائد بدلاً من التجاوز يمكن أن يؤدي إلى حدوث أخطاء أكثر دقة يصعب حسابها. في أي حال، فمن الأفضل استخدام الشرح @Overrride
.
طباعة محتويات مصفوفة بدلاً من طباعة كائن المصفوفة
المصفوفة عبارة عن كائن في Java ولكنها لا تتجاوز الطريقة،toString
وعندما تقوم بطباعة مصفوفة، فإن تنسيق الإخراج الافتراضي ليس مفيدًا جدًا لأننا نرغب في رؤية محتويات المصفوفة. بالمناسبة، هذا سبب آخر لتفضيل مصفوفة char[] على String لتخزين البيانات الحساسة مثل كلمة المرور. خذ الوقت الكافي لمعرفة ما إذا كانت طباعة محتويات المصفوفة تساعد عملائك أم لا، وإذا كان ذلك منطقيًا، فقم بطباعة محتويات المصفوفة بدلاً من الكائن نفسه. لأسباب تتعلق بالأداء، يفضل استخدام Collection
HashSet ArrayList
أو HashSet بدلاً من ذلك Array
لتخزين كائنات أخرى.
نصائح إضافية
بعض النصائح الإضافية حول تجاوز الطريقةtoString
في Java.
-
طباعة المخرجات
toString
في أسطر متعددة أو في سطر واحد بناءً على طوله. -
قم بتضمين أسماء الفئات المؤهلة بالكامل في التمثيل
toString
، بمعنى آخرpackage.class
لتجنب أي سوء فهم. -
يمكنك تخطي القيم الخالية أو إظهارها، لكن من الأفضل إظهارها. في بعض الأحيان تكون مفيدة لأنها تظهر الحقل الموجود
null
أثناء بعض الأحداث، على سبيل المثال NullPointerException . -
استخدم تنسيق قيمة المفتاح، على سبيل المثال
member.name=member.value
، تدعم معظم بيئات التطوير المتكاملة هذا. -
قم بتضمين الأعضاء الموروثين إذا كنت تعتقد أنه يجب عليهم تقديم المعلومات الضرورية للفئة الموروثة.
-
في بعض الأحيان يحتوي الكائن على العديد من المعلمات الاختيارية والمطلوبة، كما أظهرنا في مثال قالب Builder الخاص بنا ، عندما يكون من المستحيل تقريبًا طباعة جميع الحقول، في هذه الحالة يمكننا طباعة الحقول المطلوبة فقط، خاصة وأن لدينا حقول اختيارية.
GO TO FULL VERSION