gpt4 book ai didi

java - 是否可以在 IntelliJ 中禁用私有(private)方法的 "Optional used as field or parameter type"检查?

转载 作者:行者123 更新时间:2023-11-30 10:06:18 24 4
gpt4 key购买 nike

我不想disable the warning altogether我已经知道why you supposedly shouldn't use Optional as a parameter .但是,我认为这与我的情况无关。

为了便于说明,我的代码如下所示:

//IntelliJ reports: 'Optional<ForeignDataTransferObject>' used as type for parameter 'data'
private LocalSystemPerson extractPerson(Optional<ForeignDataTransferObject> data) {
return data
.map(data -> data.getPeopleListWrapper())
.map(peopleListWrapper -> peopleListWrapper.getList())
.map(listOfForeignPeople -> listOfForeignPeople.stream())
.orElseGet(Stream::empty)
.findFirst()
.map(foreignPerson -> convertToLocalSystemPerson(foreignPerson))
.orElse(someFallbackValue);
}

它获取人员列表,然后获取第一项,然后进行转换。由于我正在调用外部 API 并获取带有一堆字段的数据传输对象,其中任何一个都可以为空,因此任何集合都包含在一个额外的类中,即使这样获取一个空列表也是有效的情况。所以,我最终得到了这样一个冗长的代码来转换单个值。我将它分散到一个单独的辅助方法中,以避免在一个地方出现所有冗长的内容。

但是 IntelliJ 提示我正在传递一个 Optional 参数。这是我通常会同意的事情,但如果它是我用来避免另一种方法变得太长的私有(private)方法,我不认为这是一个问题 - 我可能需要从数据传输中获取多个值目的。

  • 我仍然想避免创建接受 Optional 的公共(public)方法或包含 Optional 的字段,但我想禁用对私有(private)方法的检查。
  • 我宁愿不必 annotate each method with @SuppressWarnings("OptionalUsedAsFieldOrParameterType")因为它很快就会变得烦人。我可以在接受一些外部 DTO 的各种类中使用这些方法中的多个。
  • 同样,我也不想传入一个非Optional 参数只是为了将它包装在方法中。特别是因为在某些情况下我只有一个Optional,所以我必须打开它然后用类似myMethod(data.orElse(null))的东西把它包装回去然后在方法中执行 Optiona.ofNullable(parameter)

总而言之,即使它不会跨系统或跨层等传输数据,但始终将其视为问题似乎是一个不合理的限制。

那么,我可以从设置中仅针对私有(private)方法禁用它吗?

最佳答案

目前没有禁用私有(private)方法检查的选项。请关注/评论在 YouTrack 上为您的功能请求创建的问题: https://youtrack.jetbrains.com/issue/IDEA-207468谢谢

关于java - 是否可以在 IntelliJ 中禁用私有(private)方法的 "Optional used as field or parameter type"检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54743637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com