يمكن الدعامات 2 مقبض إيسفاليد () أساليب بدلا من جيتفاليد ()
سؤال
في إطار ستروتس 2 ، عندما أسمي هذا الرمز في جسب:
if(test='item.value > 0')
فإنه سيتم تنفيذ التعليمات البرمجية جافا التالية:
getItem().getValue() > 0
هل يسمح هذا الإطار أيضا بدعم boolean
سمات?بدلا من get()
الطريقة ، وعادة ما تسمى "is"
.على سبيل المثال, public boolean isValid()
بدلا من public boolean getValid
.إذا كنت تفعل رمز الدعامات التالية:
if(test='item.valid')
وسوف ندعو المناسبة isValid()
طريقة أو أنها سوف تفشل في العثور على getValid()
الطريقة وبالتالي العودة null
?
المحلول
وسوف ندعو إما isValid()
أو getValid()
إذا كان هناك واحد.إذا كانت كلتا الطريقتين موجودتين ، فإن أي منهما سيتم استدعاؤه غير مضمون بواسطة واجهة برمجة تطبيقات انعكاس جافا.انظر Class#getDeclaredMethods()
.أيضا الدعامات 2 يستخدم داخليا طريقة التخزين المؤقت ، وبالتالي فإن أول واحد يحصل في ذاكرة التخزين المؤقت سيتم استخدامها في المرة القادمة.لذلك ، استخدم إحدى هذه الطرق للوصول إلى الخصائص.