4
https://gist.github.com/2414323Java에 ResolvedFuture 클래스가 있습니까?
가끔은 계산 결과를 알고 있지만 인터페이스에는 Future
이 필요합니다. 긴 익명 클래스를 구현하거나 AbstractFuture 또는 FutureTask를 확장하는 대신 복잡한을 구현하는 작은 홀더 클래스를 만드는 것이 더 간단합니다.
제 질문은 - 아래에 쓴 것과 비슷한 클래스가 이미 표준 라이브러리 중 하나에 있습니까?
사용법 :
Future<Boolean> iHaveToReturnAFutureButIAlreadyKnowTheAnswer() {
return new ResolvedFuture(true);
}
코드 :
/**
* Used when you need to return a Future, but you already have the answer.
*/
public class ResolvedFuture<T> implements Future<T>{
private final T item;
public ResolvedFuture(T item) {
this.item = item;
}
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
return false;
}
@Override
public boolean isCancelled() {
return false;
}
@Override
public boolean isDone() {
return true;
}
@Override
public T get() throws InterruptedException, ExecutionException {
return item;
}
@Override
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
return item;
}
}