Java 8
to.iryabov@gmail.com
Функциональное программирование
• Функции высшего порядка• Замыкания• Отсутствие состояния
λ
String, String => int
java7
λ
java7
String, String => int
λ
String, String => int
FUNCTIONAL INTERFACES
FUNCTIONAL INTERFACES
FUNCTIONAL INTERFACES
FUNCTIONAL INTERFACES
Аналог @Override
FUNCTIONAL INTERFACES
DEFAULT METHODS
• нет состояния• переопределение возможно
• используются вместе с лямбдами• обратная совместимость• множественное наследование*
METHOD REFERENCE
дефолтный конструктор
любой is, has метод
любой метод без параметров
любой метод сравнения
любой метод с одним аргументом
любой метод с 2мя аргументами
METHOD REFERENCE
сигнатура метода
METHOD REFERENCE
сигнатура метода
METHOD REFERENCE
static methodкакой-то статический метод
METHOD REFERENCE
static method
METHOD REFERENCE
static method
METHOD REFERENCE
object methodкакой-то метод объекта
METHOD REFERENCE
object method
METHOD REFERENCE
object method
METHOD REFERENCE
constructorкакой-то конструктор
METHOD REFERENCE
constructor
METHOD REFERENCE
constructor
METHOD REFERENCE
->
::
STREAM
• параллельность• lazy
@ANNOTATIONS
• @Repeateable• TYPE_PARAMETER• TYPE_USE• Checker Framework
PermGen MetaSpace