UndoManager manager = new UndoManager();
new Thread(new Runnable() {
@Override
public void run() {
manager.undo();
}
}).start();IDEA подсветила выражение, предложив использовать лямбды. После чего, рефакторинг в одно нажатие изменил код так:new Thread(() -> {
manager.undo();
}).start();Но и это ещё не всё! Так как сигнатуры методов Runnable.run и UndoManager.undo совпадают, то IDEA предложила мне воспользоваться ссылкой на метод:new Thread(manager::undo).start();
Красиво-то как! Вот обломается команда поддержки, если им придётся портировать мои тесты в старые версии Java. Да и тестеры будут недовольны, так как сложно проверять наличие ошибок в предыдущих версиях Java. Но ничего, к Java 5 уже все привыкли...