我想使用Java中的执行程序服务以并行方式安排相同的命令.我在线程池执行器上编写了一个包装器,它将并行计数作为参数调度命令,并在for循环中调度命令(即多次执行相同的实例).
这种方法是否正确?有没有建议的方法这样做?我用spring来创建这些bean.
有没有人试过配置JaCoCo来将单元和集成测试的覆盖范围转储到2个不同的文件中,让SONAR使用它们,使用ANT构建?
对于给定纪元时间(以毫秒为单位)获取 UTC 午夜时间的建议方法是什么?我尝试了以下似乎有效的方法,想知道是否有更好/更干净的方法来做同样的事情。
public long toUtcMidnight(final Long date) {
return LocalDateTime.ofInstant(Instant.ofEpochMilli(date), ZoneId.of("UTC"))
.toLocalDate()
.atStartOfDay()
.toInstant(ZoneOffset.UTC)
.toEpochMilli();
}
Run Code Online (Sandbox Code Playgroud)
我们可以为此使用 Joda 时间,但我只想为此使用 java 8 日期库。
我试图在我的数据库上测试缓存的异步加载.我正在使用Google guava加载缓存,后者又使用缓存加载器异步刷新给定密钥(如https://code.google.com/p/guava-libraries/wiki/CachesExplained中所述)
我正在尝试以下步骤进行测试
了Thread.sleep(2000L)
再拨一次同一个密钥.
由于我在嘲笑dao,我希望它至少被称为两次.但是,当我试图验证模拟时,它无法说模拟只被调用一次.如何确保dao被调用两次?我正在嘲笑线程工厂,同时创建正在调用创建新线程的Executor,正如预期的那样.为什么对dao的第二次调用从未发生过?我在这里错过了什么吗?我正在使用新的FixedThread池执行器并将其装饰为侦听装饰器.
测试这种刷新缓存的正确方法是什么?任何帮助深表感谢.
为选错的头衔道歉,想不出一个更好的头衔.请随时建议一个新的标题.
我想使用Java 8 lambda表达式编写以下代码
List<Function<MyClass, Optional<String>>> functions //assume initialized
for (final Function<MyClass, Optional<String>> function : functions) {
final Optional<String> result = function.apply(objectOfMyClass);
if (result.isPresent()) { //as soon as one of the function returns a non-null string, return
return result; //
}
}
Run Code Online (Sandbox Code Playgroud)
有关如何去做的任何建议?