标签: java-8

在 Java8 中的 optional 中抛出自定义异常

我有这段代码,我想在没有找到资源的情况下抛出异常

Menu menu = menuService.findById(addMenuAmount.getMenuId())
                    .orElseThrow(com.tdk.web.exception.ResourceNotFoundException(“menu "  + 
                            addMenuAmount.getMenuId() + " not found "));
Run Code Online (Sandbox Code Playgroud)

但我得到了一个编译错误:

com.tdk.web.exception cannot be resolved to a type
Run Code Online (Sandbox Code Playgroud)

java optional java-8

2
推荐指数
1
解决办法
521
查看次数

如何在使用收集器收集元素时合并列表/集合

我正在尝试根据他们的名称获取产品评论地图,并且需要像这样的地图

Map<String, Set<String>> productReviewMap;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试获取地图时,我得到了

Map<String, Set<Set<String>>> productReviewMap
Run Code Online (Sandbox Code Playgroud)

基于以下代码:

Map<String, Set<Set<String>>> productReviewMap = products.stream().collect(
                    Collectors.groupingBy(Product::getName, Collectors.mapping(Product::getReviews, Collectors.toSet())));
Run Code Online (Sandbox Code Playgroud)

我如何获得预期的地图。我们在流中使用 flatMap 但如何在收集器中实现它?

java java-8 java-stream

2
推荐指数
1
解决办法
436
查看次数

openapi-code-generator 3.3.4 不读取标签并且不需要 API 类名

我有以下openapi文件。我预计要生成的 API 类名将是SampleApi因为操作 "/hello" 被标记为 "sample" tags。但是它使用operation名称生成 API 类名称,它是HelloApi. 我在这里缺少什么?我正在使用openapi-generator-maven-plugin版本3.3.1

openapi: "3.0.0" info: version: 1.0.0 title: Sample Service tags: - name: sample paths: /hello: get: summary: Says hello world operationId: greet tags: - sample responses: 200: description: ok content: plain/text:
schema: type: string example: Hello World

java java-8 openapi-generator

2
推荐指数
1
解决办法
1245
查看次数

使用 -source 8 或更高版本来启用 lambda 表达式

当我尝试运行 Maven 构建时,我遇到了构建错误。我创建了一个简单的 Java 项目,其中包含 lambda 函数,因此我得到了

[ERROR] (...) lambda expressions are not supported in -source 1.5
[ERROR]   (use -source 8 or higher to enable lambda expressions)
Run Code Online (Sandbox Code Playgroud)

我的 Java 版本是 1.8.0_172,我的 Maven 版本是 3.6.0。

java lambda maven java-8

2
推荐指数
1
解决办法
3713
查看次数

如何将 SpringBoot 微服务应用程序(RESTful)作为无服务器部署到 AWS Lambda?

我使用 Java 8 和 Spring Boot2.0 开发了一个简单的微服务,基于 REST。它有自己的 REST 端点,我可以使用 Postman 调用它,并且得到很好的响应。如果我想在 AWS 云上部署相同的应用程序,现在我对理解设计和架构有疑问。我希望我的应用程序像无服务器一样运行,因此我想使用其 Lambda 服务在 AWS 上进行部署。

请帮助解决我的以下疑问:- 1) 首先,我可以将我的整个应用程序代码上传到 AWS Lambda 以使其无服务器吗?

2) 如果是,那么当请求通过它时,我是否需要使用 AWS API Gateway(强制)来调用我的 Lambda 函数?

3) 如果是(第 2 点),那么我原来的微服务代码中的端点将变得无效并被新的 API 网关端点覆盖?

我的全部疑问是关于端点,哪个端点将用于调用 Lambda 函数?

请协助澄清我的疑问。如果有任何样本参考材料,那就太好了。

干杯

amazon-web-services java-8 spring-boot microservices aws-lambda

2
推荐指数
1
解决办法
1977
查看次数

Java Comparator.comparing() 类型签名是什么意思?

我无法理解方法签名:

static <T,U extends Comparable<? super U>> Comparator<T> comparing(Function<? super T,? extends U> keyExtractor)
Run Code Online (Sandbox Code Playgroud)

super, extends, 通配符 ( ?) 和多个尖括号混淆。请不要误会我的意思,我了解基本的泛型。正是这里使用的更高的构造让我感到困惑。

java generics java-8

2
推荐指数
1
解决办法
371
查看次数

是否可以使用 Java 中的 Stream API 返回分页结果?

所以,我有Stream一些对象,我需要从Stream. 例如从第 2 到第 4 个元素。

Stream<String> strs = Stream.of("qwe", "asd", "zxc", "rty", "fgh", "vbn");
Run Code Online (Sandbox Code Playgroud)

并且仅从第 2 到第 4 个元素返回: asd, zxc, rty .

是否可以?

谢谢!

java pagination java-8 java-stream

2
推荐指数
1
解决办法
4288
查看次数

支持 Java 8 并在 Tomcat 8.5 上运行的 Oracle Jdbc 驱动程序版本

我想知道支持java8和Tomcat 8.5的ojdbc版本。目前我正在使用 ojdbc14_g.jar,它在我启动应用程序时会出现版本兼容性问题。这适用于 Tomcat 7,但不适用于 Tomcat 8.5。

这适用于 Tomcat 7,但不适用于 Tomcat 8.5。

java-8 ojdbc tomcat8.5

2
推荐指数
1
解决办法
7616
查看次数

Optional 返回值为空时不抛出异常

我正在学习 Spring Boot,当服务没有在数据库中找到项目时,我试图抛出异常,因此,我尝试使用 optional 但当我测试它时,除了异常之外,我只得到一个空响应

    @GetMapping(value = "/compras", produces = "application/json")
public Optional<Compras> retrieveAllCompras(@RequestParam String id) {
    return Optional.of(compraRepository.findById(id)).orElseThrow(RuntimeException::new);
Run Code Online (Sandbox Code Playgroud)

当在数据库中找不到该项目时,我预计会出现异常

java response optional java-8 spring-boot

2
推荐指数
1
解决办法
5334
查看次数

带有方法参考的 Java 8 比较器

试图理解方法引用,但我很难理解。坚持比较器示例。

为了让我的大脑更轻松,我一直从基础开始(匿名类实现 >> laba 表达式 >> 方法引用)它是方法引用和比较器示例,我无法让它工作。

我想排序的 POJO(从一些互联网示例中提取 - mkyong)

public class Fruit{
   private int quantity;
   private String name;
   ....
}
Run Code Online (Sandbox Code Playgroud)

创建要使用的测试数据:

Fruit[] fruits = new Fruit[3];
Fruit pineapple = new Fruit("pineapple",10);
Fruit orange= new Fruit("orange",4);
Fruit kiwi= new Fruit("kiwi",15);

fruits[0] = pineapple;
fruits[1] = orange;
fruits[2] = kiwi;
Run Code Online (Sandbox Code Playgroud)

匿名排序类实现:

Comparator<Fruit> anonymousSortByname = new Comparator<Fruit>(){
     public int compare(Fruit f1,Fruit f2){
        return f1.getName().compareTo(f2.getName());
     }
};
Run Code Online (Sandbox Code Playgroud)

排序 :

Arrays.sort(fruits,anonymousSortByname);
Run Code Online (Sandbox Code Playgroud)

既然这可行,我已经明白匿名类可以转换为 lambda 表达式(前提是它们是功能接口等......)

Lambda 实现:

Comparator<Fruit> lambdaSortByname = 
 (Fruit f1,Fruit f2) -> …
Run Code Online (Sandbox Code Playgroud)

lambda java-8 method-reference

2
推荐指数
1
解决办法
2978
查看次数