8
เหตุใดอาร์เรย์ของโควาเรียนท์ แต่ยาสามัญมีค่าคงที่?
จาก Java ที่มีประสิทธิภาพโดย Joshua Bloch อาร์เรย์แตกต่างจากประเภททั่วไปในสองวิธีที่สำคัญ อาร์เรย์แรกเป็น covariant ยาสามัญมีค่าคงที่ Covariant นั้นหมายถึงว่าถ้า X เป็นชนิดย่อยของ Y ดังนั้น X [] ก็จะเป็นประเภทย่อยของ Y [] อาร์เรย์เป็น covariant เนื่องจากสตริงเป็นชนิดย่อยของ Object So String[] is subtype of Object[] ค่าคงที่นั้นหมายถึงโดยไม่คำนึงว่า X เป็นชนิดย่อยของ Y หรือไม่ List<X> will not be subType of List<Y>. คำถามของฉันคือทำไมการตัดสินใจที่จะทำให้อาร์เรย์ covariant ใน Java? มีการโพสต์ SO อื่น ๆ …