| Author |
Is this a closure?
|
Jack Allan
Greenhorn
Joined: Apr 10, 2012
Posts: 1
|
|
I would like to find out more about what is going on in the below code. I know that the new ExpectedCondition bit is some kind of callback but what exactly is this language feature called? Is it a closure/lamda expression? Where can I learn more about this kind of thing?
Cheers,
Jack
|
 |
Jeff Verdegan
Bartender
Joined: Jan 03, 2004
Posts: 5852
|
|
Hi, Jack, and welcome to the Ranch!
No, that's not a closure. There was talk of adding closures to Java 7, but I don't think they made it in. Don't quote me on that last bit though.
What you're seeing is Java's closest approximation to a closure. It's an anonymous inner class.(⇐That's a google link, but skip anything that takes you to roseindia. That site is known for being rife with errors.)
|
 |
Jesper de Jong
Java Cowboy
Bartender
Joined: Aug 16, 2005
Posts: 12911
|
|
|
Java 7 indeed does not have closures / lambda expressions. That's a new feature that will most likely be included in Java 8.
|
Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
|
 |
Stephan van Hulst
Bartender
Joined: Sep 20, 2010
Posts: 3047
|
|
You *could* call it a kind of closure. Most people who are familiar with the term will know what part of the code you're referring to. You could also call this new ExpectedCondition a callback.
However, they are not. The new ExpectedCondition is called an Anonymous Class. The operation on xpathQuery is also not a closure or a lambda expression, even if does the same thing.
You get closures when you bind a function object to a variable mentioned in the lexical context outside the function. You get lambda expressions when you create an anonymous function type. You get a callback when you pass a function to another function.
Java doesn't have function objects so you can't have closures, lambda expressions, or callbacks. Anonymous classes provide a way of doing things that look a lot like these concepts though.
|
 |
 |
|
|
subject: Is this a closure?
|
|
|