في حجج نوع Java ، هل <؟ يمتد e> يعني الأنواع الفرعية بدقة فقط؟ أم أن ه أيضًا كافية؟

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

سؤال

في حجج نوع Java ، هل يعني الأنواع الفرعية بدقة فقط؟ أم أن ه أيضًا كافية؟

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

المحلول

نعم، super و extends يعطي الحدود السفلية والعليا الشاملة على التوالي.

هذا اقتباس من أسئلة وأجوبة في أنجيليكا لانجر:

ما هو البرية المحددة؟

تبدو بطاقة البرية ذات الحدود العلوية ? extends Type ويقف على الأسرة من جميع الأنواع التي هي أنواع فرعية من Type ، يكتب Type كون وشملت. Type يسمى الحد الاعلى.

بطاقة برية مع أ الأدنى يشبه ? super Type ويقف على الأسرة من جميع الأنواع التي هي supertypes من Type ، يكتب Type كون وشملت. Type يسمى الأدنى.

نصائح أخرى

انها ليست صارمة. E يكفي.

List<? extends Animal> animalList=new List<Dog>();
List<? extends Animal> animalList=new List<Animal>();

كلا الخطين تجميع دون أي خطأ. أي وظيفة تأخذ القائمة كمعلمة تدرك أن الكائنات في القائمة هي من النوع E أو نوع فرعي لـ E.

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