2017-05-03 3 views
-2

Ich bin neu in CompletableFuture, hier ein einfaches ist, würde ichWas ist falsch bei der Verwendung von CompleableFuture?

CompletableFuture.supplyAsync(()-> {System.out.println("async");}); 

Wenn ich zu kompilieren versuchen ausprobieren, gab es den Fehler

Error:(23, 26) java: no suitable method found for supplyAsync(()->{ Syst[...]"); }) 
    method java.util.concurrent.CompletableFuture.<U>supplyAsync(java.util.function.Supplier<U>) is not applicable 
     (cannot infer type-variable(s) U 
     (argument mismatch; bad return type in lambda expression 
      missing return value)) 
    method java.util.concurrent.CompletableFuture.<U>supplyAsync(java.util.function.Supplier<U>,java.util.concurrent.Executor) is not applicable 
     (cannot infer type-variable(s) U 
     (actual and formal argument lists differ in length)) 

Ich frage mich, was mit dem falsch über?

+3

Nun du nichts zurückkehr - welche Art von „Lieferant“ glaubst du, du vorbei? –

+1

Sie vermissen die Rückgabe https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html#supplyAsync-java.util.function.Supplier- –

+4

Sie sollten 'CompleableFuture verwenden .runAsync (() -> System.out.println ("async")); 'stattdessen. – Flown

Antwort

2

Wie es in der Fehlermeldung sagt:

fehlt Rückgabewert

Lieferanten haben einen Wert zurückgeben. Versuchen:

CompletableFuture.supplyAsync(()-> {System.out.println("async"); return null;}); 

oder, wie Geflogen weist darauf hin, verwenden runAsync:

CompletableFuture.runAsync(()-> System.out.println("async")); 
+0

Es funktioniert, aber gibt es eine Möglichkeit nicht mit "Return null" –

+2

Sicher: alles zurückgeben, was Sie möchten. Aber um zu wiederholen: "Lieferanten müssen etwas zurückgeben". Wenn es etwas nicht zurückgibt, ist es ein 'Runnable', kein' Lieferant'. –

+0

@Adam Lee: Wenn Sie darauf bestehen, 'supplyAsync' zu verwenden, obwohl Sie nichts liefern, können Sie 'CompletableFuture.supplyAsync (() -> System.out.append (" async \ n "))' 'verwenden – Holger

Verwandte Themen