Java Properties provides an efficient way to
access bean-like properties of Java objects.
Unlike Java bean properties, a chain of properties
can be specified efficiently, allowing convenient
access to properties of nested domain objects.
Runtime class-generation and caching can be used
very easily to obviate the need for reflection,
without losing the flexibility it provides.
Properties are specified using strings like
"P1:P2:...:Pn", and can even be cast like this:
"(C1)P1:(C2)P2:...:Pn".