توقيع طريقة جافا. يعلم الأصدقاء الذين يرغبون في القيام بتطوير Java أيضًا أن أهمية توقيع الطريقة هي تفسير أفضل للتحميل الزائد للأسلوب ، خاصة في التحسين اللاحق. هنا سجل. يمكن للأصدقاء الذين رأوا ذلك قراءته أيضًا.
معنى توقيع الطريقة
بالنسبة للطرق ذات الأسماء المختلفة والأسماء المختلفة التي تحمل نفس الاسم ، فإن توقيع الطريقة ليس ذا معنى كبير ، ولكن بالنسبة للطرق المحملة الزائدة ، يكون توقيع الطريقة ذا معنى كبير. نظرًا لأن أسماء الطريقة بين الأساليب الزائدة هي نفسها ، يجب أن نجد عنصرًا آخر من العناصر الأخرى التي تشكل الطريقة وتكوين اسم الطريقة التي يمكن أن تشير بشكل فريد إلى الطريقة ، ولن يتم النظر في الجسم. ثم هي قائمة المعلمات الرسمية وقيمة الإرجاع. ومع ذلك ، بالنسبة لأولئك الذين يطلقون على الطريقة ، فإن أهمية قائمة نوع بيانات المعلمة الرسمية للطريقة أعلى بكثير من قيمة الإرجاع ، وبالتالي فإن توقيع الطريقة يتكون من اسم الطريقة + قائمة المعلمة الرسمية. وهذا يعني أن اسم الطريقة وقائمة نوع بيانات المعلمة الرسمية يمكن أن تحدد بشكل فريد طريقة ما ، وليس لها علاقة مع قيمة إرجاع الطريقة. هذا أساس مهم للحكم على الحمل الزائد ، وبالتالي فإن الكود التالي غير مسموح به.
العام الطويل AAAA () {} public int aaaa () {}تنسيق توقيع الطريقة
أولاً ، دعونا نلقي نظرة على عدة طرق وتوقيعاتهم:
public void test1 () {} test1 () Vpublic void test2 (String str) test2 (ljava/lang/string ؛) Vpublic int test3 () {} test3 () i من الأمثلة الثلاثة أعلاه ، يمكننا ببساطة رؤية بعض القواعد الصغيرة:
يتكون توقيع الطريقة المقدمة من JVM بالفعل من ثلاثة أجزاء: اسم الطريقة (المثال أعلاه لم يكتب اسم الفئة الكاملة للبساطة) ، قائمة المعلمة الرسمية ، وقيمة الإرجاع. الشكل الأساسي هو:
اسم الفصل الكامل. اسم الطريقة (قائمة نوع بيانات المعلمة الرسمية) نوع بيانات قيمة الإرجاع
أحرف خاصة/معاني رسائل في توقيع طريقة Java
| شخصيات خاصة | نوع البيانات | تعليمات خاصة |
|---|---|---|
| الخامس | فارغ | تستخدم بشكل عام لتمثيل قيمة إرجاع الطريقة |
| ض | منطقية | |
| ب | بايت | |
| ج | شار | |
| ق | قصير | |
| أنا | int | |
| ي | طويل | |
| و | يطفو | |
| د | مزدوج | |
| [ | صفيف | ابدأ بـ [، بالإضافة إلى أحرف خاصة أخرى ، تمثل مجموعة من أنواع البيانات المقابلة ، والعديد منها [يمثل صفائف قليلة الأبعاد |
| ل | اسم الفئة الكاملة ؛ | يبدأ النوع المرجعي بـ L ؛ ينتهي باسم الفئة بأكملها للنوع المرجعي في الوسط |
تجدر الإشارة إلى أنه عندما يتم تحميل الطريقة بشكل زائد ، فإن قيمة إرجاع الطريقة لا معنى لها ، يتم تحديدها بواسطة اسم الطريقة وقائمة المعلمات.
إنشاء توقيع الطريقة باستخدام Javap
فئة مكتبة الفصل
$ javap -s java.lang.String تم تجميعها من "string.java" الفئة النهائية العامة java.lang.string يمتد java.lang.object الأدوات java.io.serializable ، java.lang.comparable ، java.lang.charevent {public java.util.comparator.comparator.com ؛ التوقيع: ljava/util/المقارنة ؛ العام java.lang.string () ؛ Signature: () v public java.lang.string (java.lang.string) ؛ التوقيع: (ljava/lang/string ؛) v public java.lang.string (char []) ؛ التوقيع: ([c) v public java.lang.string (char [] ، int ، int) ؛ التوقيع: ([cii) v public java.lang.string (int [] ، int ، int) ؛ التوقيع: ([iii) v public java.lang.string (byte [] ، int ، int) ؛ التوقيع: ([biii) v public java.lang.string (byte [] ، int) ؛ التوقيع: ([biii) v public java.lang.string (byte [] ، int) ؛ التوقيع: ([bi) v public java.lang.string (byte [] ، int ، int ، java.lang.string) يرمي java.io.unsupportedencodingexception ؛ التوقيع: ([biiljava/lang/string ؛) v public java.lang.string (byte [] ، int ، java.nio.charset.charset) ؛ التوقيع: ([biiljava/nio/charset/charset ؛) v public java.lang.string (byte [] ، java.lang.string) java.io.unsupportedencodingexception ؛ التوقيع: ([bljava/lang/string ؛) v public java.lang.string (byte [] ، java.nio.charset.charset) ؛ التوقيع: ([bljava/nio/charset/charset ؛) v public java.lang.string (byte [] ، int ، int) ؛ التوقيع: ([Bii) v ...فصول مخصصة
حزمة com.demo ؛ الفئة العامة sigtest {public static final string name = null ؛ public int getName (int [] data ، index ong) {return 0 ؛ }} الإخراج
$ javac sigtest.java $ javap -s -p com.demo.sigtestcompiled من "sigtest.java" com.demo.sigtest يمتد java.lang.object {public static final java.lang.string name ؛ التوقيع: ljava/lang/string ؛ public com.demo.sigtest () ؛ التوقيع: () VPublic int getName (int [] ، long) ؛ التوقيع: ([ij) istatic {} ؛ التوقيع: () V}-S تعني طباعة معلومات التوقيع
-P يعني طباعة معلومات التوقيع لجميع الوظائف والأعضاء. بشكل افتراضي ، تتم طباعة معلومات التوقيع العام فقط
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!