草庐IT

java - 可选地获取字段

我有这样一个类结构:publicclassFoo{privateFooBfoob;publicOptionalgetFoob(){returnOptional.ofNullable(foob);}}publicclassFooB{privateintvalA;publicintgetValA(){returnvalA;}}我的目标是调用fooB的get方法,然后检查它是否存在。如果存在则返回valA属性,如果不存在则返回null。所以像这样:IntegervalA=foo.getFoob().ifPresent(getValA()).orElse(null);当然这不是正确的Java8

实体字段中的 Java 8 可选

这个问题在这里已经有了答案:MappingaFunctionalJavaOptionwithHibernate(3个答案)关闭6年前。我可以在hibernate实体的字段中使用Optional吗?也许有一些自定义用户类型?我知道我可以在使用AccesType.FIELD的方法中使用它(无论如何我都使用AccesType.FIELD)。我为什么要这个?好吧,我想尽可能远离空值。

java - 可选的 monad 和 Java 中的 Demeter 法则

当我审查一些代码时,我看到了这个片段。Listusers=/*Somecodethatinitializesthelist*/;users.stream().filter(user->user.getAddress().isPresent()).map(/*Somecode*/)//Andsoon...方法的调用user.getAddress()返回Optional.遵循著名的Demeter法则(LoD),上面的代码并不干净。但是,我不知道如何重构它以使其更清洁。第一次尝试可能是添加到User类方法hasAddress(),但这种方法克服了拥有Optional的需要,国际海事组织。我应

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

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

java8 - 缺少变量和可选

我正在解析输入的JSON。对于一个字段,有3种可能性:该字段不存在;该值设置为空;该值设置为有效值。实现了不同的行为:对于JSON中不存在的值,将默认值插入到数据库中;对于JSON中的空值,将空值插入到数据库中。我考虑过可选来对此建模:publicclassData{privateOptionalfield;}以下两个选项中哪个最有意义?如果field为null,则该字段在JSON中不存在。如果field为Optional.empty,则该字段在JSON中为null。如果field为null,则该字段在JSON中为null。如果field为Optional.empty,则该字段在JSO

Java 8 可选 : choose between two possibly null values

我必须在两个字符串变量之间做出选择-第一个具有非null值。如果它们都是null-那么我想退出该方法。这可以在以下代码中完成:Stringvalue1=Stringvalue2=Stringtarget=null;if(value1!=null)target=value1;elseif(value2!=null)target=value2;if(target==null)returnnull;也可以简写:Stringtarget=value1!=null?value1:value2!=null?value2:null;if(target==null)returnnull;我正在努力解决

java - JPA - 可选列

我们在每个客户的单独数据库中有许多客户数据,这些数据应该具有相同的架构/表结构。但是,与其他数据库相比,某些数据库中有一个表具有额外的列。例如,对于客户A,有一个包含a、b、c、d列的表X。对于客户B,有一个包含a、c、d列的表X。如果b存在,我需要捕获它,如果不存在,我可以忽略它。有没有办法告诉JPA在这些列不存在时忽略它们?@Basic(optional=true)读起来和我想要的完全一样,但文档表明它用于其他目的。目前,正如预期的那样,我在“字段列表”中得到未知列“table.field”附言不幸的是,我不能只将列添加到没有它们的数据库中。 最佳答案

带有函数链接表达式的 Java8 可选

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion我想知道有没有办法简化以下代码?我正在尝试使用EBean从数据库中获取一些东西。如果有,则将其映射到对象或以其他方式返回默认实现实例。publicstaticObjectAtest1(){Function,ObjectA>sqlRowToObjectA=newFunction,ObjectA>(){@OverridepublicAccountSummaryapply(Optionalentry){retu

java - Gradle 不包含可选依赖

我有一个项目,它具有apache-compress库作为编译时依赖项。这个库似乎使用Maven,并且有一个POM文件,其依赖项设置为“可选”。这是POM文件的相关部分:org.tukaanixz1.5trueGradle似乎没有将这个库包含到我的项目中,我猜这是因为“可选”属性。有没有什么方法可以告诉Gradle包含此依赖项,而无需我自己明确包含xz库?这是我的Gradle依赖声明:compilegroup:'org.apache.commons',name:'commons-compress',version:'1.8.1' 最佳答案

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