首页 | 本学科首页   官方微博 | 高级检索  
     


The Java 5 generics compromise orthogonality to keep compatibility
Authors:Atanas Radenski [Author Vitae]  Jeff Furlong [Author Vitae]
Affiliation:a Chapman University, Department of Mathematics and Computer Science, One University Drive, Orange, CA 92866, United States
b University of California, Department of Information and Computer Science, Irvine, CA 92697, United States
c Columbus State University, Department of Computer Science, Columbus, GA 31907, United States
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 tradeoffs 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 by the compiler.
Keywords:Java generics  Type erasure  Language design  Language orthogonality
本文献已被 ScienceDirect 等数据库收录!
设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号