Re: Annotations processing + type introspection + code generation
On 12.09.2011 19:04, markspace wrote:
On 9/12/2011 9:56 AM, Robert Klemme wrote:
The only reason I can think of which would require to generate code
would be ultra high speed requirements.
I think generated code is somewhat more common that you assume. Since
the JVM byte codes and class format is public and relatively stable,
it's quite easy to generate code in a manner that's compatible with
many, or all, JVMs.
There's also things you can't do at runtime. For example, the Proxy
class requires an interface to extend. But many POJO objects don't
declare a separate interface. And requiring the programmer to declare an
interface for all POJO types within a framework is pretty odious, and
old school.
I'm playing around with JSF and JPA right now. I notice that all my
Entity classes are decorated by extending them with generated code. I'm
sure if there were a better way to do it, they would. But the generated
code seems to be the way to go in this instance.
OK, good point! I had generation of boilerplate code (e.g. via things
like XDoclet) in mind which is really 20th century. :-) Depending on
the use case reflection could still be sufficiently fast enough - and
it's likely simpler than byte code generation.
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/