OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Java Reflection"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Tutorials > All Tutorials

 : Sunday Afternoon Tutorials (1:30 - 17:00) : Languages and Development : Sunday

Java Reflection

Meeting Room 9
Sunday, 13:30, half day
 


 
7·8·9·10·11·12·13·14·15·16·17·18·19·20·21

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.

Tutorial number: 12

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 imples 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. This tutorial inspired by the book "Java Reflection in Action" (Manning 2004), which also provides supplementary material for the tutorial.

Intermediate: Attendees should be competent Java programmers