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 уже все привыкли...