草庐IT

Optional

全部标签

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

c++ - 是否可以 move boost::optional ?

我一直在尝试在具有boost::optional成员变量的类中定义默认move构造函数。#include#include#includestructbar{std::vectorvec;};structfoo{foo()=default;foo(foo&&)=default;boost::optionalhello;};intmain(){fooa;foob(std::move(a));}我的编译器同时支持move语义和默认的move构造函数,但我无法让它工作。%clang++foo.cc-std=c++11-stdlib=libc++foo.cc:15:7:error:calltod

c++ - 为什么返回 std::optional 有时会移动,有时会复制?

请参阅下面返回UserName的可选项的示例-可移动/可复制的类。std::optionalCreateUser(){UserNameu;return{u};//thisonewillcauseacopyofUserNamereturnu;//thisonemovesUserName}intmain(){autod=CreateUser();}为什么return{u}会导致复制而returnu会移动?以下是相关的大肠杆菌样本:http://coliru.stacked-crooked.com/a/6bf853750b38d110另一个案例(感谢@Slava的评论):std::uniqu

c++ - How to get around GCC ‘*((void*)& b +4)’ may be used uninitialized in this function warning while using boost::optional

我有类似下面的代码:#include::boost::optionalgetitem();intgo(intnr){boost::optionala=getitem();boost::optionalb;if(nr>0)b=nr;if(a!=b)return1;return0;}当使用GCC4.7.2和Boost1.53进行编译时,使用以下命令:g++-c-O2-Wall-DNDEBUG发出以下警告:13:3:warning:‘((void)&b+4)’maybeuseduninitializedinthisfunction[-Wmaybe-uninitialized]显然,根本问题在

c++ - 如何将 boost::optional 设置回未初始化状态?

如何“重置”/“取消设置”boost::optional?optionalx;if(x){//Wewon'thitthissincexisuninitialized}x=3;if(x){//Nowwewillhitthissincexhasbeeninitialized}//WhatshouldIdoheretobringxbacktouninitializedstate?if(x){//Idon'twanttohitthis} 最佳答案 x=boost::none; 关于c++-如何将