<
УЦ Контакт

Лидер IT образования

Как приятно знать, что ты что-то узнал (Мольер)

 
03056, Киев, пер. Ковальский 13, 1-й этаж, офис №2
 
Программы курсов

Акция! Студентам - Скидка 15%! Слушателям IT Academy бесплатное посещение English Club

Статья>>Огляд Java 8 ч.1

Схоже Java 8 найочікуваніший реліз всіх часів. Спочатку планували реліз на вересень минулого року , потім його перенесли на березень наступного року , приблизно для того , що б витратити більше часу на доопрацювання безпеки , в основному спрямовані на клієнтську частину Java ( JavaFX / Swing ) .

 

Нова версія Java намагається " вдосконалюватися " так , як розуміє це слово Microsoft. Це означає крадіжку великої частини речей , про які дбали інші фреймворки і мови , потім включення їх в мову або  runtime.

Напередодні нового релізу , співтовариство Java обговорює Project Lambda, stream, functional interfaces та інші новинки.

 

Покращення інтерфейсу

Тепер Інтерфейси можуть визначити статичні методи.

Наприклад, java.util.Comparator тепер має статичний метод naturalOrder

 

public static <T extends Comparable<? super T>> Comparator<T> naturalOrder() {         return (Comparator<T>) Comparators.NaturalOrderComparator.INSTANCE;     }

Інтерфейси можуть забезпечити стандартні методи. Це дозволяє програмістам додати нові методи, не порушуючи існуючий код, який реалізує інтерфейс. Наприклад, java.lang.Iterable тепер має метод за замовчуванням FOREACH.

 

    public default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);         for (T t : this) {             action.accept(t);         }     }

Зверніть увагу, що інтерфейс не може забезпечити реалізацію за замовчуванням для будь-якого з методів класу об'єкта.

Функціональні інтерфейси

Функціональний інтерфейс являє собою інтерфейс, який визначає рівно один абстрактний метод. TheFunctionalInterface анотації була введена, щоб вказати, що інтерфейс функціональний. Наприклад, java.lang.Runnable є функціональним інтерфейсом.

 

    @FunctionalInterface     public interface Runnable {         public abstract void run();     } 

Зверніть увагу, що компілятор Java розглядатиме будь-який інтерфейс, що відповідає визначенню в якості функціонального інтерфейсу незалежно від того, чи буде присутня анотація  FunctionalInterface, чи ні.


Полезные статьи