我有很多响应对象需要提供给 ui。我想要一个模板,这样我就可以做到,到目前为止,下面的代码还没有奏效。
private <T> T getResult(Class clazz){
String fileName = "/path/file.json";
File file = new File(BaseEndpoint.class.getResource(fileName.getFile());
T result = null;
try {
result = mapper.readValue(file, clazz);
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
Run Code Online (Sandbox Code Playgroud) 我想在一段时间内失败时重试我的函数调用。这样做的最佳方法是什么。这会正常工作吗。
CompletableFuture.runAsync(() -> {
for (int i = 0; i < 3; i++) {
try {
dndService.initateDNDRequest(transactionId, circle, category, "PREPAID");
break;
} catch (Exception e) {
try {
TimeUnit.SECONDS.sleep(10);//wait for few minutes while next attempt
} catch (InterruptedException e1) {
LOGGER.error("Error while retrying request for DND.");
}
LOGGER.error("Request retry for DND count"+i);
}
}
}, executor);
Run Code Online (Sandbox Code Playgroud) 我有一个默认结构的 springboot 项目。我在资源/数据下有一个 excel 文件。我的程序需要加载 excel 文件并将数据从每张表中转储到不同的表中。
当我从 Eclipse 运行时,程序正确加载了 excel 文件,一切看起来都很好。但是,当我在 Docker 上部署同一个应用程序时,它无法从资源中读取文件。
有没有人遇到过这个问题?你是怎么解决的?
如何在 Java 8 中完成?
if (var1 != null && var2!=null) {
callMethod(var1,var2);
}
Run Code Online (Sandbox Code Playgroud)
我在想这样的事情,但有两个变量:
Optional.ofNullable(var1).ifPresent(var1 -> callMethod(var1));
Run Code Online (Sandbox Code Playgroud) 我有问题的答案清单。我想保存这些答案,然后(在 mongo 给他们一个 id 之后)将它们添加到他们的问题中。
现在我这样做:
public Flux<Answer> createAnswers(List<Answer> answers) {
return answerRepository.saveAll(answers)
.map(answer -> {
questionRepository.findById(answer.getQuestionId())
.subscribe(question -> {
question.getAnswers().removeIf(ans -> Objects.equals(ans.getId(), answer.getId()));
question.getAnswers().add(answer);
questionRepository.save(question).block();
});
return answer;
});
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过..saveAll(answers).doOnNext(),doOnEach()但是这样问题不会被保存。
似乎 map 用于转换数据而不是用于对每个元素进行操作。此外,我对调用block().
有没有更好的方法来实现我的目标?
这是我的代码:
return repository.findFirstByFxDateAndTransCurrAndCrdhldBillCurr(
LocalDate.parse(request.getDate()), request.getTransactionCurrency(), request.getBillingCurrency())
.orElse(getCurrencyExchangeRateFromApi(request));
Run Code Online (Sandbox Code Playgroud)
它不起作用,但我将 .orElse 更新为 .orElseGet
return repository.findFirstByFxDateAndTransCurrAndCrdhldBillCurr(
LocalDate.parse(request.getDate()), request.getTransactionCurrency(), request.getBillingCurrency())
.orElseGet(() -> getCurrencyExchangeRateFromApi(request));
Run Code Online (Sandbox Code Playgroud)
它工作完美,我不知道原因,是java8的错误吗?
我尝试再次运行多次,没有任何变化,但我尝试编写一个小示例,可选的 String 而不是来自存储库,也可以。
我有两个具有以下数据类型的地图,
Map<Pair<Long,String>, List<String>> stringValues;
Map<Pair<Long,String>, List<Boolean>> booleanValues ;
Run Code Online (Sandbox Code Playgroud)
我想将上述地图合并到以下数据结构
Map<Pair<Long,String>, Pair<List<String>,List<Boolean>>> stringBoolValues;
Run Code Online (Sandbox Code Playgroud)
我的输入有两个具有相同键但不同值的映射。我想将它们组合成一对。我可以使用 java 流来实现这一点吗?
我正在尝试将字符串的格式解析"yyyy-MM-dd'T'HH:mm:ss'Z'"为LocalDateTime如果日期是sunday或者saturday我想将日期更改为monday相同格式并返回,我知道我可以通过使用添加天数plusDays
String str = "2018-09-22T12:30:10Z";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
LocalDateTime dateTime = LocalDateTime.parse(str, formatter);
System.out.println(dateTime.plusDays(2)); //2018-09-24T12:30:10
Run Code Online (Sandbox Code Playgroud)
但我想以格式返回 2018-09-24T12:30:10Z
有人可以帮我将以下语句转换为 Java8:
我有一个这样的哈希图:
private Map<String, Pair<List<XYZFiles>, List<XYZFiles>>> someMap;
Run Code Online (Sandbox Code Playgroud)
我想在java8中转换以下逻辑:
private String searchFiles(String transmittedFileId) {
for (Pair<List<XYZFiles>, List<XYZFiles>> pair : someMap.values()) {
List<XYZFiles> createdFilesList = pair.getKey();
Optional<XYZFiles> xYZFiles= createdFilesList.stream()
.filter(file ->
file.getId().endsWith(transmittedFileId)).findFirst();
if (xYZFiles.isPresent()) {
return xYZFiles.get().getOriginId();
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有这个对象:
public class MatchEvent implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Instant dateReceived;
public Instant getDateReceived() {
return dateReceived;
}
public void setDateReceived(Instant dateReceived) {
this.dateReceived = dateReceived;
}
}
Run Code Online (Sandbox Code Playgroud)
我想按收到的日期订购;
matchService
.findAllByDay(today)
.sorted(Comparator.comparing(MatchEvent::dateReceived))
Run Code Online (Sandbox Code Playgroud)
但似乎这是不可能的,因为我遇到了编译错误:
Multiple markers at this line
- The method comparing(Function<? super T,? extends U>) in the type Comparator is not applicable for the arguments
(MatchEvent::dateReceived)
- The type MatchEvent does not define …Run Code Online (Sandbox Code Playgroud) java-8 ×10
java ×4
java-stream ×2
apache-poi ×1
casting ×1
collections ×1
comparator ×1
date ×1
datetime ×1
docker ×1
generics ×1
icomparable ×1
optional ×1
retry-logic ×1
schedule ×1
spring-boot ×1
stream ×1