The reflection package, introduced as a core package with Java 1.1, allows Java programmers to ask the JVM questions about classes it has loaded and even classes for which no instances exist. Java programs can, using the classes in the reflection package, determine what methods a class has, what those methods' parameters are, what fields a methods has, and so forth. That's where the reflection package comes in. BeanLint wants to be sure that all nonstatic, nontransient fields of a bean are serializable, so it uses instances of Field in order to check. The Modifier class represents a modifier of a method or a field in a class.
Modifiers indicate some property of a method, field, or class.
The Constructor class is similar to class Method , but it represents a constructor instead of a method. As such, it has no method for getting the return value class, since constructors don't have return values. Since one of the requirements of a JavaBean is that it have a zero-argument constructor, we'll be using class Constructor to analyze our beans' constructors. The addition of reflection to Java 1.1 included expanding the information about classes available from java.lang.Class . The return values of many of these methods are instances of classes in the package java.lang.reflect that we've just seen.