用Java构建完整未来的最佳方式是什么?我已经实现了我自己的下面的< code>CompletedFuture,但希望像这样的东西已经存在。
public class CompletedFuture<T> implements Future<T> {
private final T result;
public CompletedFuture(final T result) {
this.result = result;
}
@Override
public boolean cancel(final boolean b) {
return false;
}
@Override
public boolean isCancelled() {
return false;
}
@Override
public boolean isDone() {
return true;
}
@Override
public T get() throws InterruptedException, ExecutionException {
return this.result;
}
@Override
public T get(final long l, final TimeUnit timeUnit) throws InterruptedException, ExecutionException, TimeoutException {
return get();
}
}
Guava定义了Futures.immediateFuture(value)
,它执行这项工作。
Apache Commons Lang定义了类似的实现,称为ConstantFuture,您可以通过调用:
Future<T> future = ConcurrentUtils.constantFuture(T myValue);
在Java 8中,您可以使用内置的CompletableFuture:
Future future = CompletableFuture.completedFuture(value);
我想要一个完整的未来,只发出完成的信号(例如,我没有返回值)。 我可以将CompletableFuture实例化为: 但是我应该向完整的方法提供什么呢?例如,我不能做
问题内容: 我想读取捕获的异常的完整堆栈跟踪。 例如: 我想阅读“ … 23更多”,以了解异常的来源。 问题答案: 答案很简单,这些行已经在stacktrace中了:) 基本上,以下情况正在发生:
问题内容: 我知道我可以轻松创建表的副本,但是我需要复制: columns comments tablespace indexes grants triggers keys default values … any other dependencies 有办法通过程序吗?我的Oracle版本是 11R2 。 表的SQL: 问题答案: 您可以使用包,该程序可以对整个表进行复制,包括注释等。它还可以对
问题内容: 我正在尝试创建完整路径(如果不存在)。 代码如下: 只要只有一个子目录(例如“ dir1”之类的newDest),此代码就可以很好地工作,但是当存在一个目录路径(“ dir1 / dir2”)时,它将失败并显示 错误:ENOENT,没有这样的文件或目录 我希望能够用最少的代码行来创建完整路径。 我读到fs上有一个递归选项,并像这样尝试过 我觉得递归地创建一个不存在的目录应该很简单。我是
所以lv在“v”或“v”后面会有一个“_”,在那之后会有一个整数,比如“_v1”,“_v2”,所以在结尾会是一个整数,但不是任何整数,它应该是整数a。谢谢!
在前四十来章中,我们讲解了许多基础方面的内容。 在本书的最后部分,我们将尝试从零开始为一门语言创造Vim插件。 这不是个适合懦夫的游戏。这将需要你竭尽全力。 如果你现在就想退出,那确实也不坏!你已经学到了如何在~/.vimrc里改善你的生活, 还有如果修复别人的插件里的bugs。 有"这就够了,我不想虚掷光阴于创造一个我将不会使用的插件"这种想法并不可耻。 现实一点。如果你不想创造一个自己想用的插