草庐IT

optional

全部标签

java - Optional.map 中的 Integer::toString

在Java中使用带有方法引用的map时,我遇到了以下问题:publicclassDummy{publicstaticvoidmain(String[]args){IntegerHolderih=newIntegerHolder();Optionaliho=Optional.of(ih);iho.map(IntegerHolder::getInteger).map(Objects::toString);iho.map(IntegerHolder::getInteger).map((Integerii)->ii.toString());iho.map(IntegerHolder::getI

java - 在 Java 中安全地从长对象转换为长原语的惯用方法

我试图将一个Long对象值传递给一个需要long原语的方法,直接传递有效,但Long对象为null的情况除外。在这种情况下,我得到一个空指针异常。Longfoo=null;bar.methodExpects_long_primitive(foo);我可以创建一个检查foo是否为null并跳过调用该方法,例如Longfoo=null;if(foo!=null){bar.methodExpects_long_primitive(foo);}或者如果我想提供一个默认值Longfoo=null;bar.methodExpects_long_primitive(foo==null?default

java - 不存在类型变量 U 的实例,因此 Optional<U> 符合 Response

我有以下内容:OptionalupdatedResource=update(resourceID,data);if(updatedResource.isPresent()){returnResponse.status(Response.Status.OK).entity(updatedResource.get()).build();}我想避免isPresent和get如果可能的话打电话,所以我试过了returnupdate(resourceID,data).map(updatedResource->Response.status(Response.Status.OK).entity(u

java - 可选<>和返回类型缩小

在JavaclassA{}classBextendsA{}interfaceSup{Aa();/*returnsAinstance,ornull*/}interfaceSubextendsSup{Ba();}在Java8中,如果我想让我的API“更安全”,我应该返回Optional而不是“原始”A:interfaceSup{Optionala();}interfaceSubextendsSup{Optionala();}但是不编译!因为Optional不是Optional的子类.我该如何解决这个问题? 最佳答案 您可以使用通配符。i

java - 泛型方法返回 'nothing'但不能返回null时返回什么?

假设我有一个这样的库方法(非常简短):publicstaticOptionaldoSomethingWith(Callablecallable){try{returnOptional.of(callable.call());}catch(Exceptionex){//DosomethingwithexreturnOptional.empty();}}我想要一些不返回值的东西,比如:Library.doSomethingWith(()->{foo();return/*what2*/;});对于不返回值的泛型方法,我的第一直觉是将类型设置为Void并返回null,但是因为结果被包裹在>可选

java - Java Optional 可以用来做流控吗?

我找不到使用Java的Optional执行以下操作的方法:if(SOME_OBJECT!=null){doSomething(SOME_OBJECT);}else{doSomethingElse();}通过使用Optional,我并不是说用Optional.ofNullable(SOME_OBJECT).isPresent()替换SOME_OBJECT==null,这比简单地检查是否为null的语法要长得多。我期望的是这样的:Optional.ofNullable(SOME_OBJECT).ifPresent(this::doSomething).orElse(this::doSome

java - 如何使用 WebDriver 单击 <option> 元素?

这是一段UI代码FeeSeeAttachedAddendum哪里标签嵌套在中标签。我需要click()第二元素是下拉列表中的一个项目。当我尝试click()时,下拉菜单是可点击的在上使用id/uniqueattr标记。我如何遍历标签嵌套在下然后点击正确的项目? 最佳答案 除了Qwerky的正确答案,你还可以做简单的driver.findElement(By.xpath("//select/option[@value='1']")).click();这会找到value='1'的option元素并单击它,实际上是在下拉列表中选择它。描述

java - ClickJacking 过滤器以添加 X-FRAME-OPTIONS 作为响应

为了解决clickJacking和阻止我的站点被iframe打开的问题,我创建了一个servlet过滤器,我在其中添加了下面一行以添加“X-FRAME-OPTIONS”响应header。但是当我运行页面并查看该页面的响应header时,我从来没有在其中得到这个header。知道为什么吗?publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{HttpServletResponseres=(HttpServlet

java - 将对象列表转换为 Java 中的可选对象列表

以下代码将对象列表转换为可选对象列表。有没有一种使用Java8的流来执行此操作的优雅方法?ListoriginalList=Arrays.asList(newObject(),newObject());List>convertedList=newArrayList();for(Objectobject:originalList){convertedList.add(Optional.of(object));}我尝试了以下代码。List>convertedList=originalList.stream().map((o)->Optional.of(o));然而,这会产生以下编译错误:o

Java8 泛型拼图

我使用的是Java1.8.0_151,有些代码无法编译,我不明白:Optionaloptional=Optional.of("dummy");Optionalresult1=optional.map(obj->true);//worksfinebooleanresult2=result1.orElse(false);//worksfinebooleanresult3=optional.map(obj->true).orElse(false);//compilationerror:Incompatibletypes:requiredboolean,foundobjectObjectres