草庐IT

Optional类

全部标签

java - 在 Java 中从 Optional->List->List 转换的链方法

我有一个包含列表的Optional对象。我想将此列表中的每个对象映射到另一个列表,并返回结果列表。即:publicListget(intid){Optionaloptfoo=dao.getById(id);returnoptfoo.map(foo->foo.getBazList.stream().map(baz->baz.getBar()))}有没有一种干净的方法可以在流中没有流的情况下做到这一点?我认为flatMap可能是解决方案,但我不知道如何在这里使用它。 最佳答案 没有。flatMap如果是Optional是压平一个可能的O

java - 例如 Set#add(E) 的 Javadoc 中的 "optional operation"是什么意思?

在Set的java文档中时它在方法规范中说OptionalOperation例如(我强调的)add(Ee)Addsthespecifiedelementtothissetifitisnotalreadypresent(optionaloperation).这里的optional是什么意思?如果我使用SUN/Oracle以外的JVM,该操作可能不会由该Java实现提供? 最佳答案 Set是一个接口(interface)。实现该接口(interface)的类不一定需要为可选操作提供实现。我认为那些可选操作可以追溯到通用Collectio

java - 带有 Optional 的 Null 安全方法链接

Guava的Optionalpattern很棒,因为它有助于消除null的歧义。transform当链的第一部分可能不存在时,方法对于创建空安全方法链非常有帮助,但当链的其他部分不存在时就没有用了。这个问题与GuavaOptionaltype,whentransformationreturnsanotherOptional有关,它问的问题本质上是相同的,但针对不同的用例,我认为这可能不是Optional的预期用途。(处理错误)。考虑一种方法OptionalfindBook(Stringid).findBook(id).transform(Book.getName)按预期工作。如果没有找

java - 为什么 Optional<T> 声明为最终类?

我在玩以下问题:UsingJava8'sOptionalwithStream::flatMap并想为自定义添加一个方法Optional然后检查它是否有效。更准确地说,我想添加一个stream()到我的CustomOptional如果不存在值,则返回空流;如果存在,则返回具有单个元素的流。但是,我得出的结论是Optional被宣布为最终的。为什么会这样?有很多类没有声明为final,我个人认为没有理由在这里声明Optionalfinal。作为第二个问题,为什么不能所有的方法都是最终的,如果担心它们会被覆盖,并让类成为非最终的? 最佳答案

java - 将 OptionalDouble 转换为 Optional <java.lang.Double>

我有一个构建列表的方法,我希望它返回列表的平均值作为可选值。但是,当我使用Java8计算平均值时,我总是将返回值作为OptionalDouble。我如何转换OptionalDoubletoOptional?下面是我的平均计算代码:privatestaticOptionalaverageListValue(){//BuildlistListtestList=newArrayList();testList.add(...);......returntestList.stream().mapToDouble(value->value).average();}谢谢。

java - 在 Java 8 中删除带有 'Optional' 的嵌入式空检查

我替换了下面的代码:if(status.getPlace()==null){row.set("CountryCode","Unknown");row.set("Country","Unknown");}else{if(status.getPlace().getCountryCode()==null){row.set("CountryCode","Unknown");}else{row.set("CountryCode",status.getPlace().getCountryCode());}if(status.getPlace().getCountry()==null){row.se

java - 如何禁用 IntelliJ 中的 "Optional used as field or parameter type"警告?

这个问题在这里已经有了答案:DisableIntelliJWarnings(4个答案)关闭6年前。Jetbrains最近决定java.util.Optional(以及Guava的com.google.common.base.Optional)不应用作字段或参数类型...谢谢,但不,谢谢...如何禁用此警告?附带说明:针对Optional的这种特定用法触发警告似乎完全没有道理......

java - @OneToOne(optional=false) 和@JoinColumn(nullable=false) 一起使用

我在JPA2.0FR规范11.1.37中遇到过这个例子。OneToOne注释,第403页:@OneToOne(optional=false)@JoinColumn(name="CUSTREC_ID",unique=true,nullable=false,updatable=false)publicCustomerRecordgetCustomerRecord(){returncustomerRecord;}有什么理由我应该放@OneToOne(optional=false)并同时放@JoinColumn(...nullable=false)?这两个声明不是一样的吗?其中一个不是多余的吗

java - 如何使用 Gson 序列化 Optional<T> 类?

我有一个具有以下属性的对象。privatefinalStringmessageBundle;privatefinalListmessageParams;privatefinalStringactionBundle;privatefinalMapdata;privatefinalOptional>ttl;privatefinalOptionalbadgeNumber;privatefinalOptionalcollapseKey;该对象在一个库中,我不想仅仅为了序列化目的而修改它,并且希望避免创建另一个DTO的成本。如何序列化/反序列化可选属性?Optional没有默认构造函数(apac

maven optional

什么是optionaloptional是maven依赖jar时的一个选项,表示该依赖是可选的,不会被依赖传递。optional>true/optional>为什么要使用optional减少不必要的依赖传递减少jar包冲突使用场景A项目的pom中依赖了system-local-apidependency>groupId>com.sinosoft/groupId>artifactId>system-local-api/artifactId>version>1.0.0/version>/dependency>B项目依赖了A项目因为maven有依赖传递机制,那么B项目就会有system-local-a