详细目录请看:
Your questions answered: all about Lambdas and friends
Fundamentals
Default Methods
Collections
Idioms and Techniques
Design Rationale
Advanced Questions
Meta
About the Lambda FAQ
Lambdas are now becoming a familiar part of the Java scenery. Java 8 shipped on March 18th this year, bringing with it the long-awaited feature of lambda expressions (aka closures). Together with the associated language and library features—streams and virtual extension methods—they are having a greater impact on how we program in Java than any other change in the history of the platform.
I initially started to learn about the new features so that Phil Wadler and I could consider a second edition of our book . But as I learned more about the subtleties of the changes, it became clear that an entire new book () was needed. Writing that has used up my spare cycles for nearly a year, but I’m happy now to turn my attention back to this FAQ. And though of course I’m urging you to buy the book, it’s not the end of wisdom on the subject: as I learn more and we get greater experience in using the new features, new understanding can be reflected here.
The new features weren’t all easy to understand at first, so this FAQ started with the intention of helping you over some of the obstacles that tripped me up. But then more advanced questions appeared, so I now hope that you will find it useful whether you are already familiar with lambda expressions or encountering them for the first time. All comments and contributions are welcome. I’m very pleased to acknowledge the continuing input from the Oracle Java Language and Tools team, especially and Brian Goetz; their collaboration is helping to greatly improve the scope and accuracy of this document. (Of course, all errors and omissions are my responsibility.) I will be happy to include and acknowledge your contribution too. But please be aware that anything on this website may yet end up as part of the material of a new edition of Java Generics and Collections.
What’s the Purpose of this FAQ?
The question-and-answer format is intended to serve two purposes;
It’s a tutorial: if you’re starting from scratch in learning about the upcoming changes to Java, you should be able to start with , “What is a lambda expression?” and get a tutorial introduction by following the “next” link at the top right of each page;
It’s a reference: if you want an answer to a particular technical question, jump straight to it. Since the Oracle team are also reading these answers, it’s reasonable to expect that this will become an authoritative popular reference to what’s going to happen.
As part of the reference material, there’s a , where I will maintain up-to-date links with the various rapidly-changing useful resources: documentation, presentations, build and download resources, tool support and mailing lists.
The tutorial sequence is divided into topics, to be read in the sequence listed below and in the left-hand sidebar on every page, which also corresponds to the “next” and “previous” links at the top of each post. An exception is the topic of “Design Rationale”; some questions here can also be found in the tutorial sequence, others are free-standing.
What’s Your Question?
Let me know what you think of this resource, how it could be improved, and what questions you would like to see answered here.
1: Fundamentals of Lambda Expressions
2: Default Methods
3: Collections
Questions about Design Rationale
(Questions labelled “(t)” are also included in the tutorial sequence above)
(t)
(t) (t)Advanced Topics
Copyright © 2015 - All Rights ReservedPowered by &