midScala
What is variance in Scala generics?
Updated May 24, 2026
Short answer
Variance defines subtype relationships in generics.
Deep explanation
Covariance (+T) allows subtyping, contravariance (-T) reverses it, invariance allows no relation.
Real-world example
Used in collections and API design.
Common mistakes
- Misusing variance annotations.
Follow-up questions
- Why is List covariant?
- What is invariance?