A form of
Config
that is generated by looking at fields in the constructor arg that are
annotated with
ConfigValue
. The class hierarchy is walked from closest to Object to the
constructor argument's type, null values are ignored, and the order in which fields are read is
not stable (meaning duplicate config values may give different values each time).
The main use of this class is to allow an object configured using (for example) jcommander to be
used directly within the app, without requiring intermediate support classes to convert flags to
config values.