في حجج نوع Java ، هل <؟ يمتد e> يعني الأنواع الفرعية بدقة فقط؟ أم أن ه أيضًا كافية؟
-
01-10-2019 - |
سؤال
في حجج نوع 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.
لا تنتمي إلى StackOverflow