يمكن معرفة قيمة الإرجاع قبل أن يعود في حين التصحيح في الكسوف ؟

StackOverflow https://stackoverflow.com/questions/217116

سؤال

هل من الممكن أن نرى عودة قيمة الأسلوب بعد الخط قد تم تشغيلها من قبل مؤشر التعليمة يعود إلى استدعاء وظيفة ؟

أنا رمز التصحيح لا أستطيع تعديل (قراءة:لا ترغب في إعادة تجميع مكتبة طرف ثالث), وأحيانا يقفز إلى رمز لا يكون المصدر أو عودة التعبير الآثار الجانبية التي وقف لي أن تكون قادرة على مجرد تشغيل التعبير في عرض من علامة التبويب.

في كثير من الأحيان قيمة الإرجاع هي تستخدم في مجمع البيان ، وهكذا المتغيرات عرض لن تظهر لي قيمة (ومن يريد أن يرى النتيجة قبل أن يعود التحكم إلى وظيفة الدعوة).

تحديث: لا أستطيع استخدام تعبير المشاهد كما أن هناك آثار جانبية في البيان.

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

المحلول

تمت إضافة هذه الميزة إلى الكسوف نسخة 4.7 M2 تحت الكسوف علة 40912.

استخدامه:

  • خطوة على return بيان (باستخدام "خطوة أكثر" أو "خطوة العودة")
  • الآن أول سطر في متغير عرض نتيجة عودة البيان "[بيان] من عاد:"

انظر الكسوف المشروع الأكسجين (4.7) م2 - جديدة وجديرة بالملاحظة للحصول على التفاصيل.

نصائح أخرى

وجدت اختصار هذا.حدد التعبير التي ترجع قيمة واضغط

Ctrl + Shift + D

وهذا عرض قيمة العائد البيان.هذا هو حقا مفيدة في الحالات التي لا تستطيع أو لا تريد التغيير فقط من أجل التصحيح الغرض.

ويساعد هذا الأمل.

ملاحظة:لم يتم اختبار هذا مع طرف ثالث المكتبات ، ولكنها تعمل بشكل جيد على قانون بلدي.اختبرت هذا على Eclipse Java EE IDE لمطوري الويب.الإصدار:جونو Service Release 1

هذا هو في الواقع منذ فترة طويلة الخلل في الكسوف ، التي يعود تاريخها إلى الأيام الأولى من IDE: https://bugs.eclipse.org/bugs/show_bug.cgi?id=40912

هذا هو السبب في أنني دائما العصا مع النمط التالي لأساليب:

MyReturnedType foo() {
     MyReturnedType   result = null;

     // do your stuff, modify the result or not

     return result;
}

القواعد:

  1. واحد فقط العودة البيان فقط في نهاية الأسلوب (وأخيرا سمح بعد ذلك)
  2. دائما المحلية تسمى النتيجة التي يحمل القيمة التي تم إرجاعها ، بدءا من الافتراضي.

وبطبيعة الحال ، أتفه حاصل معفاة.

أنا غريبة عن معرفة الجواب على هذا السؤال أيضا.

في الماضي عند التعامل مع مكتبة 3rd الطرف مثل ذلك ما فعلته هو إنشاء المجمع الدرجة أو الفئة الطفل أن يفوض إلى الطبقة الأم و التصحيح في المجمع/الفئة الطفل.يستغرق العمل الإضافي على الرغم من.

"الآن عند العودة من طريقة في الجزء العلوي من طريقة في عرض المتغير يظهر قيمة الإرجاع سابقا الانتهاء من المكالمة" [1]

[1] https://coffeeorientedprogramming.wordpress.com/2016/09/23/eclipse-see-return-value-during-debugging/

واحد صعبة.تجربتي خارج الكسوف ، هو أنه إذا كنت قد تحتاج إلى معرفة قيمة الإرجاع ، فمن الأفضل لتعيين متغير محلي في الوظيفة حتى العودة بيان بسيط return varname; و لا return(some * expression || other);.ولكن هذا ليس بشكل مخيف مفيدة لك بما أنك تقول أنك لا تستطيع (أو لا تريد) تعديل أو حتى إعادة ترجمة التعليمات البرمجية.لذلك ليس لدي إجابة جيدة بالنسبة لك - ربما تحتاج إلى إعادة النظر في الاحتياجات الخاصة بك.

اعتمادا على عودة البيان ، يمكنك تسليط الضوء على التعبير التي يتم إرجاعها من بزر الماوس الأيمن فوق القائمة ، ينبغي أن يكون هناك شيء من هذا القبيل "تقييم التعبير" (لا يكون الكسوف أمامي الآن, لكنه شيء من هذا القبيل).وسوف تظهر لك ما سوف تعاد.

هذا هو قليلا بعيد المنال ، ولكن لأن هناك لا يبدو أن يكون وسيلة بسيطة:

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

هناك خياران نسج الفصول الدراسية بدون ترجمة المكتبة :

  • بعد تجميع النسيج لو تجهيز ثنائي جرة مقبولة ؛

  • وقت التحميل النسيج الذي يتطلب تفعيل النسيج عامل في VM.

رؤية الكسوف الوثائق (الرابط أعلاه) و أيضا AspectJ بيئة تطوير دليل.

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