Java 是否可以禁用;可选,用作字段或参数类型;在IntelliJ中检查私有方法?

Java 是否可以禁用;可选,用作字段或参数类型;在IntelliJ中检查私有方法?,java,intellij-idea,intellij-inspections,Java,Intellij Idea,Intellij Inspections,我不想,我已经知道了。然而,我认为这与我的情况无关 出于说明目的,我有如下代码: //IntelliJ reports: 'Optional<ForeignDataTransferObject>' used as type for parameter 'data' private LocalSystemPerson extractPerson(Optional<ForeignDataTransferObject> data) { return data

我不想,我已经知道了。然而,我认为这与我的情况无关

出于说明目的,我有如下代码:

//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);
}
//IntelliJ报告:“可选”用作参数“数据”的类型
私有LocalSystemPerson提取器Person(可选数据){
返回数据
.map(数据->数据.getPeopleListWrapper())
.map(peopleListWrapper->peopleListWrapper.getList())
.map(listOfForeignPeople->listOfForeignPeople.stream())
.orElseGet(流::空)
.findFirst()
.map(外国人->转换本地系统管理员(外国人))
.orElse(某些回退值);
}
它先获取人员列表,然后是第一项,然后再转换。因为我调用了一个外部API,得到了一个数据传输对象,其中包含一组字段,任何字段都可以为null,所以任何集合都被包装在一个额外的类中,即使得到一个空列表也是有效的。因此,我最终得到了这样一个详细的代码来转换单个值。我将其存储到一个单独的helper方法中,以避免在一个地方出现所有冗长的内容

然而IntelliJ抱怨我传递了一个
可选的
参数。这是我通常会同意的,但如果它是一个私有方法,我用它来保存另一个方法以避免变得太长,我不认为这是一个问题-我可能需要从数据传输对象中获取多个值

  • 我仍然希望避免创建接受
    Optional
    的公共方法或包含
    Optional
    的字段,但我希望禁用对私有方法的检查
  • 我不想这么做,因为它很快就会变得烦人。我可以在接受一些外部DTO的不同类中有多个这样的方法
  • 类似地,我也不想传入一个非
可选的
参数,而只是将其包装在方法中。特别是因为在某些情况下,我只有一个
可选的
,所以我必须先打开它,然后用类似于
myMethod(data.orElse(null))
的东西将其包装回去,然后在方法中执行
Optiona.ofNullable(参数)
总而言之,始终将其视为一个问题似乎是一个不合理的限制,即使它不会跨系统或跨层传输数据,等等


因此,我是否可以仅从私有方法的设置中禁用它,而不从其他设置中禁用它?

目前没有禁用私有方法检查的选项。请关注/评论YouTrack为您的功能请求创建的问题:
谢谢

谢谢。我想现在可能有办法,但我就是想不出来。我有点难过的是,没有可配置的方法-检查似乎是合理的,只是对于本地私有方法没有意义,IntelliJ没有任何关于在这种情况下该做什么的建议。诚然,我不知道什么建议会起作用,但一个除了添加注释以抑制它或完全禁用它之外什么都没有的警告似乎很奇怪。