簡體   English   中英

從java方法返回泛型類型

[英]return generic type from java method

我希望我的Java方法返回通用T。我無法使其正常工作。 我的方法在線程池執行器上執行傳入的方法,並通過Future.get()等待結果,我想將結果傳回,並且此結果可能會有所不同,具體取決於在Supplier上傳入的方法。

這就是我所擁有的,它可以工作,但是在使用時我需要轉換為正確的類型。 我更喜歡使用T t樣式而不是Object。

   public Object executeThis(Supplier<T> request) throws RejectedExecutionException {
    Object obj = null;

    try {
        Future future = executor.submit(() -> request.get());
        obj = future.get(timeoutInMilis, TimeUnit.MILLISECONDS);
    } catch (ExecutionException | InterruptedException e) {
    }
}

要返回通用類型:

public <T> T executeThis(Supplier<T> request){}

您只需要在Diamond運算符內的返回類型之前聲明泛型類型,然后聲明方法返回類型(T)

您必須修改此:

Future future = executor.submit(() -> request.get());
obj = future.get(timeoutInMilis, TimeUnit.MILLISECONDS);

至 :

Future<T> future = executor.submit(() -> request.get());
T obj = future.get(timeoutInMilis, TimeUnit.MILLISECONDS);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM