[英]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.