: Monday Morning Tutorials (8:30 - 12:00) : Languages and Paradigms : Monday : Programming Techniques
Pacific Salon 4
Monday, 8:30, half day
Ira Forman, IBM
Nate Forman, Ticom Geomatics
Tutorial number: 19
The use of reflection is an important technique for improving program flexibility and programmer productivity. Reflection facilitates development of programs that are easily adapted to requirement changes. This property of reflection implies better code reusability as a corollary. With reflection one can develop software engineering tools that examine or produce code. Reflection facilitates testing and problem determination by facilitating the automation of more tedious tasks.
The Java programming language contains a highly effective reflection facility. The tutorial explains the concept of reflection, the Java metaobjects (including both introspective and intercessional interfaces), the proxy class, and dynamic compilation and class loading. The limits of Java reflection are addressed in the context of what reflection is capable of in general. In addition, the tutorial demonstrates the efficacy of the Java reflection facility for solving practical problems. Such problems include: program/application testing, generation of code, inspection of code, and use of dynamic class loading in a framework for application extension. The last topic covered will be the performance impact of using reflection.
Earlier versions of this tutorial inspired the speakers' book "Java Reflection in Action"(Manning 2004), which also provides supplementary material for the tutorial.
Intermediate: An attendee must be a competent Java programmer.
Ira Forman, IBM: Dr. Ira R. Forman works for IBM in Austin. As a member of IBM's Object Technology Products Group, which produced the SOMobjects Toolkit, he worked on the SOM Metaclass Framework. He started working in the area of object-oriented programming in 1984, when he worked at ITT Programming Technology Center. Forman received his Ph.D. in Computer Science from the University of Maryland, where he studied under Harlan Mills. Forman's specialties are object-oriented programming, distributed systems, and object composition. He is the coauthor of two books: "Interacting Processes: A Multiparty Approach to Coordinated Distributed Programming" and "Putting Metaclasses to Work: A New Dimension in Object-Oriented Programming."
Nate Forman, Ticom Geomatics: Nate Forman works for Ticom Geomatics where he designs and programs application frameworks for their products. His specialties are patterns and object-oriented programming. Forman holds a MSE in Software Engineering from the University of Texas at Austin and a BS in Computer Science from the College of Engineering at Cornell University.