Efficiency (or lack of) in Java reflection: glad we have it anyway
However, Java reflection is not very efficient and I have seen at least one very large Java application that has poor performance because it performs lots of reflection. Other languages like Ruby have better support. Common Lisp Object System (CLOS) with support for things like before/after methods, class slot introspection, etc. also is very effective for applications requiring more flexibility than Java.