Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!feeder.erje.net!eu.feeder.erje.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED!not-for-mail From: Patrick Roemer Newsgroups: comp.lang.java.programmer Subject: Re: Java 8 closures vs. anonymous inner classes Date: Thu, 05 Dec 2013 00:38:17 +0100 Organization: news.netcologne.de Lines: 14 Distribution: world Message-ID: References: NNTP-Posting-Host: xdsl-78-34-170-17.netcologne.de Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: newsreader4.netcologne.de 1386200298 6934 78.34.170.17 (4 Dec 2013 23:38:18 GMT) X-Complaints-To: abuse@netcologne.de NNTP-Posting-Date: Wed, 4 Dec 2013 23:38:18 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.24) Gecko/20100411 Thunderbird/2.0.0.24 Mnenhy/0.7.6.0 In-Reply-To: Xref: csiph.com comp.lang.java.programmer:26730 Responding to Sven Köhler: > When I was digging through the byte code, invokedynamic was simply used > to invoke some fancy method that would basically encapsulate the > creation of the lambda object (which then is nothing more than an > instance of some class that implements the interface in question). invokedynamic provides a layer of indirection that will allow switching to another implementation. http://wiki.jvmlangsummit.com/images/1/1e/2011_Goetz_Lambda.pdf Best regards, Patrick