草庐IT

Optional类

全部标签

java - 在 Java 8 中,转换 Optional.empty 中空字符串的 Optional<String>

给定一个字符串,我需要获取一个Optional,如果String为null或为空,则结果将为Optional.empty。我可以这样做:Stringppo="";Optionalostr=Optional.ofNullable(ppo);if(ostr.isPresent()&&ostr.get().isEmpty()){ostr=Optional.empty();}但肯定有更优雅的方式。 最佳答案 您可以使用过滤器:Optionalostr=Optional.ofNullable(ppo).filter(s->!s.isEmpty

java - 从一个 Optional 或另一个中获取值(value)

我有两个java.util.Optional实例,我想获得一个Optional:如果有值,则具有第一个Optional的值。如果有值,则具有第二个Optional的值。既没有Optional也没有值。有没有一种直接的方法可以做到这一点,即是否已经有一些API可以做到这一点?下面的表达式可以做到这一点,但我不得不提到第一个可选的两次:firstOptional.isPresent()?firstOptional:secondOptional这正是com.google.common.base.Optional.or()所做的,但该方法在Java8的API中不存在。aioobe接受的答案列出

java - 'Optional.get()' without ' isPresent()'检查

我在Java中有以下搜索代码:returngetTableViewController().getMe().getColumns().stream().filter($->Database.equalsColumnName($.getId(),columnId)).findFirst().get();我希望按名称查找列并返回找到的第一个。我知道有一种情况是什么都找不到,应该处理,但是如何处理?这就是它想要的这个脏话吗:'Optional.get()'without'isPresent()'check?如何解决?如果没有找到,我希望返回null。更新好的,好的,我只是没有意识到,find

java自定义注解: make an attribute optional

我定义了自己的自定义注解@Target(value={ElementType.METHOD,ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)public@interfaceMyCustomAnnotation{ClassmyType();}如果有的话,我怎样才能使属性成为可选的 最佳答案 您可以provideadefaultvalue对于属性:@Target(value={ElementType.METHOD,ElementType.FIELD})@Retention(Re

java - 正确使用 Optional.ifPresent()

我正在尝试了解Java8中OptionalAPI的ifPresent()方法。我的逻辑很简单:Optionaluser=...user.ifPresent(doSomethingWithUser(user.get()));但这会导致编译错误:ifPresent(java.util.functionError:(186,74)java:'void'typenotallowedhere)当然我可以这样做:if(user.isPresent()){doSomethingWithUser(user.get());}但这就像一个杂乱无章的null检查。如果我把代码改成这样:user.ifPres

Spring 中的 Java 8 Optional<?> 验证解包器

在我的DTO中使用以下验证规则时,在我的SpringBoot项目中@Length(max=70)@UnwrapValidatedValueprivateOptionalvendorName;我收到以下异常javax.validation.ValidationException:HV000182:Novalidationvalueunwrapperisregisteredfortypejava.util.Optional我无法在任何地方找到如何在Spring中注册自定义验证值解包器 最佳答案 您应该向validator注册一个Vali

java - Spring Data JPA findOne() 改为 Optional 怎么用?

我正在学习SpringBoot2.0与Java8.并且我遵循了一些博客制作教程示例。教程源码为:@GetMapping("/{id}/edit")publicStringedit(@PathVariableLongid,Modelmodel){model.addAttribute("categoryDto",categoryService.findOne(id));return"category/edit";}但是这段代码抛出了这个错误:categoryService.findOne(id)我正在考虑更改JPAfindOne()方法Optional如何解决?更多信息:这是categor

Kotlin 和 Dagger : Can I use @Inject to an object still make it nullable/optional?

由于某些设备上发生的运行时错误,我需要一些可以使我的类为空/可选的东西。这可能吗?classMyFragmentextendsFragment{@Injectvarpresenter:MyPresenter?=null//Othercodeshere...}我想使用presenter作为选项,因为某些旧的Android设备尤其会抛出此错误(这是在我删除lazyinit之前)。代码:classMyFragmentextendsFragment{@Injectlazyinitvarpresenter:MyPresenter?=null//Othercodeshere...overridef

java-8 - 如何将 java.util.Optional<Something> 映射到某物?在 Kotlin

我有一个返回java.util.Optional的方法.我想使用Kotlin的那个方法,我希望我的结果是Something?,而不是Optional如何在Kotlin中以惯用的方式做到这一点?调用.orElse(null)在Optional给我Something?确实,但看起来不太好。如果我写valmsg:Something=optional.orElse(null).,Kotlin不会提示(msg被声明为Something,而不是Something?-我松散了编译类型检查)。我使用Kotlin1.0.3 最佳答案 用解包方法扩展j

java - Spring Data JPA 如何使用 Kotlin nulls 而不是 Optional

我正在使用SpringDataJPA和Kotlin编写一个SpringBoot应用程序,我注意到在CrudRepository中有以下方法:OptionalfindById(IDid);不过,我使用的是Kotlin,它处理空值的方式比Optional更流畅。有谁知道我将如何将该方法转换为这样工作?funfindById(id:ID):T?当我扩展Repository本身并使用该签名创建一个repo时,我收到错误:java.lang.ClassCastException:java.util.Optionalcannotbecasttocom.books.Book