Java 9
Language updates

by Bahdan Siamionau

  • Java backend-разработчик
  • Один из организаторов JProf.by

bahdan.siamionau@gmail.com

@blazer2007

About me

Disclaimer

JSHELL

Наконец, у нас есть свой REPL

  • /import, /help, /exit
  • Автодополнение
  • Внешние библиотеки
  • Недоступный статический контекст

Тонкости

Project Coin

1. Private методы в интерфейсах

2. Final variables в try-with-resources

До Java 9

BufferedReader br = new BufferedReader(new FileReader(path));
try (br) {
	return br.readLine();
}

Теперь

BufferedReader br = new BufferedReader(new FileReader(path));
try (BufferedReader omg = br) {
	return omg.readLine();
}

3. Diamond operator для анонимных классов

До Java 9

Comparator<String> comparator = new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
};
Comparator<String> comparator = new Comparator<>() {
    @Override
    public int compare(String o1, String o2) {
        return o1.compareTo(o2);
    }
};

Теперь

4. _ больше не валидное имя переменной

Прощай, backward compatibility!

5. @SafeVarargs

Теперь и на private методах

Улучшенный

@Deprecated

+ тула jdeprscan

@Deprecated(since="1.4", forRemoval=true)
public class X500Principal implements Principal {
    ...
}

Обновления Javadoc

  • HTML 5
  • Поиск

Было

Стало

Подведем итоги

  • JShell
  • Project Coin
    • 5 language changes
  • @Deprecated
  • Javadoc

Спасибо!

Java 9: Lang

By Bahdan Siamionau