Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Robert Klemme Newsgroups: comp.lang.java.programmer Subject: Re: Annotations processing + type introspection + code generation Date: Mon, 12 Sep 2011 19:22:57 +0200 Lines: 35 Message-ID: <9d6tflFhe3U2@mid.individual.net> References: <9d6rupF6dkU1@mid.individual.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net eSt28GUdPNdEQIyIIC1tdgtHUcQiA4fDBiRA4tkqO6hT3ogUc= Cancel-Lock: sha1:ZPUqT6Gx4wWQrtXJ5CV6JRdnN94= User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64; rv:6.0.2) Gecko/20110902 Thunderbird/6.0.2 In-Reply-To: Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:7907 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/