是否有可能禁用“选项作为字段或参数类型”检查中的IntelliJ的私有方法?

VLAZ:

我不想完全禁用警告,我已经知道你为什么按说不应使用Optional作为参数不过,我不认为这是有关我的情况。

为了便于说明,我有一些代码,看起来像这样:

//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参数。这是值得我通常同意,但我不认为这是一个问题,如果它是一个私有方法,我使用保存变得太长时间另一种方法-我可能需要获取多个值关数据传输宾语。

  • 我还是要避免创建接受公共方法Optional或持有领域Optional,但我想禁用私有方法的检验。
  • 我宁愿没有标注每种方法@SuppressWarnings("OptionalUsedAsFieldOrParameterType"),因为它很快很烦人。我可以有这些方法在不同的类,接受一些外国DTO多。
  • 同样,我也不想在非传递Optional参数仅把它包起来的方法内。特别是因为在某些情况下,我只有一个Optional了,所以我不得不解开它,然后用类似包裹回来myMethod(data.orElse(null)),然后做Optiona.ofNullable(parameter)的方法。

总而言之,这似乎是一个不合理的限制总是可以把它看成一个问题,即使它不会跨系统或跨层等进行传输数据

所以,我可以禁用通常只是私有方法,但没有别的设置?

奥尔加Klisho:

对于当前时刻没有选择禁用对私有方法的检验。请遵循/发表评论在YouTrack为您需要的功能创建的问题:https://youtrack.jetbrains.com/issue/IDEA-207468谢谢

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章