相关疑难解决方法(0)

如何在Java中编写正确的微基准测试?

你如何在Java中编写(并运行)正确的微基准测试?

我在这里寻找代码示例和注释,说明要考虑的各种事项.

示例:基准测量应该测量时间/迭代或迭代/时间,为什么?

相关:秒表基准可以接受吗?

java benchmarking jvm jvm-hotspot microbenchmark

835
推荐指数
11
解决办法
11万
查看次数

Java 8 getter应该返回可选类型吗?

Optional Java 8中引入的类型对于许多开发人员来说是一件新事物.

一个getter方法返回Optional<Foo>类型代替经典的Foo一个好习惯吗?假设值可以null.

java nullable optional java-8

267
推荐指数
4
解决办法
5万
查看次数

用于可选

现在已经使用Java 8超过6个月左右,我对新的API更改感到非常满意.我仍然不自信的一个领域是什么时候使用Optional.我似乎想要在任何可能的null地方使用它,而且无处可去.

似乎有很多情况我可以使用它,我不知道它是否增加了好处(可读性/无效安全性)或只是导致额外的开销.

所以,我有一些例子,我对社区是否Optional有益的想法感兴趣.

1 - 当方法可以返回时作为公共方法返回类型null:

public Optional<Foo> findFoo(String id);
Run Code Online (Sandbox Code Playgroud)

2 - 当参数可能是null以下时作为方法参数:

public Foo doSomething(String id, Optional<Bar> barOptional);
Run Code Online (Sandbox Code Playgroud)

3 - 作为bean的可选成员:

public class Book {

  private List<Pages> pages;
  private Optional<Index> index;

}
Run Code Online (Sandbox Code Playgroud)

4 - 在Collections:

一般来说,我不认为:

List<Optional<Foo>>
Run Code Online (Sandbox Code Playgroud)

添加任何东西 - 特别是因为可以使用filter()删除null值等,但是Optional在集合中是否有任何好的用途?

我错过了什么案例?

java optional java-8

242
推荐指数
7
解决办法
8万
查看次数

在 Java 中将一个 Optional&lt;List&lt;Object&gt;&gt; 转换为另一个 Optional&lt;List&lt;Object&gt;&gt;

例如,如何将可选列表对象从一种类型转换为另一种类型

Optional<List<ProductMultipleOptionViewModel>> productOptionType1 // One type

Optional<List<ProductMultipleOption>> productOptionType2 // Other type
Run Code Online (Sandbox Code Playgroud)

ProductMultipleOptionViewModel

类型 1

@Introspected
public record ProductMultipleOptionViewModel(
        ProductOptionViewModel productOption,
        String optionName) {
}
Run Code Online (Sandbox Code Playgroud)

类型 2

 @Introspected
    public record ProductMultipleOption(
            ProductOptionViewModel productOption,
            String optionName) {
    }
Run Code Online (Sandbox Code Playgroud)

我想从 转换Optional<List<ProductMultipleOption>>为其他Optional<List<ProductMultipleOptionViewModel>>. 我试过下面的代码

Optional<List<ProductMultipleOptionViewModel>> conveertItem = Optional.ofNullable(product.getProductMultipleOption())
                .orElseGet(null)
                .stream()
                .map(option -> {
                    return new ProductMultipleOptionViewModel(
                            ProductOptionViewModel.valueOf(//Access the option value//), //access the option value//
                    );
                })
                .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,我无法访问 map 方法中的选项值

如果product.getProductMultipleOption()为 null,则返回 null 或空列表。

java java-stream java-14

3
推荐指数
1
解决办法
122
查看次数