Document Type
Article
Publication Date
2008
Abstract
In response to a long-lasting anticipation by the Java community, version 1.5 of the Java 2 platform - referred to as Java 5 - introduced generic types and methods to the Java language. The Java 5 generics are a significant enhancement to the language expressivity because they allow straightforward composition of new generic classes from existing ones while reducing the need for a plethora of type casts. While the Java 5 generics are expressive, the chosen implementation method, type erasure, has triggered undesirable orthogonality violations. This paper identifies six cases of orthogonality violations in the Java 5 generics and demonstrates how these violations are mandated by the use of type erasure. The paper also compares the Java 5 cases of orthogonality violations to compatible cases in C# 2 and NextGen 2 and analyzes the trade-offs in the three approaches. The conclusion is that Java 5 users face new challenges: a number of generic type expressions are forbidden, while others that are allowed are left unchecked.
Recommended Citation
Radenski, A., J. Furlong, V. Zanev. The Java 5 Generics Compromise Orthogonality to Keep Compatibility. Journal of Systems and Software, Elsevier Science, Vol. 81, Issue 11, 2008, 2069-2078. doi: 10.1016/j.jss.2008.04.008
Peer Reviewed
1
Copyright
Elsevier
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 4.0 License.
Comments
NOTICE: this is the author’s version of a work that was accepted for publication in Journal of Systems and Software. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Journal of Systems and Software, vol. 81, issue 11 (2008). DOI: 10.1016/j.jss.2008.04.008
The Creative Commons license below applies only to this version of the article.