我不想完全禁用警告,我已经知道你为什么按说不应使用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)
的方法。总而言之,这似乎是一个不合理的限制总是可以把它看成一个问题,即使它不会跨系统或跨层等进行传输数据
所以,我可以禁用通常只是私有方法,但没有别的设置?
对于当前时刻没有选择禁用对私有方法的检验。请遵循/发表评论在YouTrack为您需要的功能创建的问题:https://youtrack.jetbrains.com/issue/IDEA-207468谢谢
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句