2017-08-02 48 views
0

我正在使用一個服務,讓我回到一個CompletableFuture承諾,事情是,我只能通過反射工作得很好的方法。但對待諾言的迴歸讓我感到困惑。CompletableFuture承諾&Java反射

通常人們會使用這樣一個CompletableFuture工作:

promise.thenApply(returnValue -> { 
       //do something with it 
      }); 

一個怎樣做到這一點與反思?

​​

基本上我想通過一個lambda函數來治療我的諾言的恢復,但我對如何做到這一點不確定,如果有可能做到這一點。

+0

爲什麼使用反射而不是常規的方法調用?你爲什麼要在未來做這件事而不是結果呢? –

+0

因爲我使用的類是由OSGI上下文中的另一個類加載器加載的,因此我無法直接訪問它們。 –

+0

'CompletableFuture'是JDK的一部分,所以它應該由同一個父類加載器加載。因此,您應該可以將'promise'轉換爲'CompletableFuture '並在其上調用'thenApply()',如果需要,可以在傳入的'Function'中使用反射。 –

回答

0

CompletableFuture是JDK的一部分,因此它將由相同的父類加載器加載。

因此,您應該可以將您的承諾兌換成CompletableFuture<?>並在其上調用thenApply(),如果需要,可在傳入的Function內進行反射。