Код: Выделить всё
this.appLauncherCore.forceJavaRuntimeDetection(this::onJREDetectionCompleted);
// some code here not related to the line above
private void onJREDetectionCompleted() {
this.appLauncherCore.retrieveAvailableApplications(false,
applicationGroups -> handleRefreshedAvailableApplicationsAndEnableAllMenuItems(applicationGroups),
exception -> handleError(exception));
}
Код: Выделить всё
public void forceJavaRuntimeDetection(final JavaRuntimeDetectionCompletedHandler completedHandler) {
this.executorService.submit(() -> {
this.javaRuntimeService.detectJavaRuntime();
completedHandler.onJREDetectionCompleted();
});
}
Код: Выделить всё
@FunctionalInterface
public interface JavaRuntimeDetectionCompletedHandler {
/**
* Callback informant de la fin de la détection des JRE installés sur le poste.
*/
void onJREDetectionCompleted();
}
Код: Выделить всё
public void retrieveAvailableApplications(final boolean forceRefreshCache,
final ApplicationRefreshedHandler appRefreshedHandler,
final ErrorHandler errorHandler)
Насколько я понимаю, ForceJavaRuntimeDetection требует JavaRuntimeDetectionCompletedHandler > но я не понимаю, как может подойти текущий параметр. Как this::onJREDetectionCompleted может соответствовать требуемому типу? То же самое и с restartAvailableApplications.
Я знаю базовые лямбда-выражения, такие как forEach, карта и т. д. Но те, которые используются в качестве параметров?
Подробнее здесь: https://stackoverflow.com/questions/793 ... parameters
Мобильная версия