草庐IT

any_option

全部标签

java - Guava 的 Optional 类有什么意义

我最近读到了这个并且看到有人在使用这个类,但在几乎所有情况下,使用null会同样有效——如果不是更直观的话。有人可以提供一个具体的例子,其中Optional可以实现null无法或以更简洁的方式实现的目标吗?我唯一能想到的是将它与不接受null键的Maps一起使用,但即使这样也可以通过null值的侧面“映射”来完成.谁能给我一个更有说服力的论据? 最佳答案 Guava团队成员在这里。null的一个最大缺点可能是它在任何给定上下文中的含义并不明显:它没有说明性的名称。null表示“此参数没有值”并不总是很明显-哎呀,作为返回值,有时它表

java - 用Scala中的Option包装Java中的空返回方法?

假设我有一个方法session.get(str:String):String但你不知道它会返回一个字符串还是null,因为它来自Java。在Scala中是否有更简单的方法来处理此问题,而不是session.get("foo")==null?也许像ToOption(session.get("foo"))这样应用一些魔法,然后我可以像一样以Scala方式处理它ToOption(session.get("foo"))match{caseSome(_)=>;caseNone=>;} 最佳答案 Option伴随对象的apply方法用作可空引用

java - JPA 中的 @Basic(optional = false) 与 @Column(nullable = false)

@Basic(optional=false)和@Column(nullable=false)在JPA持久化中有什么区别? 最佳答案 GordonYorke(EclipseLink架构委员会成员、TopLink核心技术主管、JPA2.0专家组成员)就这个话题写了一个很好的答案,所以我不会转述他,而是引用hisanswer:Thedifferencebetweenoptionalandnullableisthescopeatwhichtheyareevaluated.Thedefinitionof'optional'talksabout

java - java.util.Optional为什么不是Serializable,如何用这样的字段序列化对象

Enum类是可序列化的,所以用枚举序列化对象没有问题。另一种情况是类具有java.util.Optional类的字段。在这种情况下会抛出以下异常:java.io.NotSerializableException:java.util.Optional如何处理这样的类,如何序列化它们?是否可以将此类对象发送到远程EJB或通过RMI?这是一个例子:importjava.io.ByteArrayOutputStream;importjava.io.IOException;importjava.io.ObjectOutputStream;importjava.io.Serializable;im

c++ - 如何使用 Boost.Program_options 实现子命令?

我想在我的程序中实现子命令。我还需要能够为不同的子命令提供不同的参数选项。使用Boost.Program_options执行此操作的最佳方法是什么?子命令用于svn、git和apt-get等程序。例如,在GIT中,一些可用的子命令是:gitstatusgitpushgitaddgitpull我的问题和这个人的基本一样:http://boost.2283326.n4.nabble.com/subcommands-with-program-options-like-svn-command-td2585537.html 最佳答案 如果我对

c++ - 如何使用 Boost.Program_options 实现子命令?

我想在我的程序中实现子命令。我还需要能够为不同的子命令提供不同的参数选项。使用Boost.Program_options执行此操作的最佳方法是什么?子命令用于svn、git和apt-get等程序。例如,在GIT中,一些可用的子命令是:gitstatusgitpushgitaddgitpull我的问题和这个人的基本一样:http://boost.2283326.n4.nabble.com/subcommands-with-program-options-like-svn-command-td2585537.html 最佳答案 如果我对

java - Optional.flatMap 和 Optional.map 有什么区别?

这两种方法有什么区别:Optional.flatMap()和Optional.map()?一个例子将不胜感激。 最佳答案 如果函数返回您需要的对象,则使用map;如果函数返回Optional,则使用flatMap。例如:publicstaticvoidmain(String[]args){Optionals=Optional.of("input");System.out.println(s.map(Test::getOutput));System.out.println(s.flatMap(Test::getOutputOpt));

Java HotSpot(TM) 64 位服务器虚拟机警告 : ignoring option MaxPermSize

使用Maven构建Java8项目时:mvncleanpackage我收到这条消息:JavaHotSpot(TM)64-BitServerVMwarning:ignoringoptionMaxPermSize=128m;supportwasremovedin8.0如何删除这条消息? 最佳答案 CompatibilityGuideforJDK8表示在Java8中,命令行标志MaxPermSize已被删除。原因是永久代被从热点堆中移除并被移动到native内存中。所以为了删除这个消息编辑MAVEN_OPTS环境用户变量:Java7MAVE

java - 警告 : [options] bootstrap class path not set in conjunction with -source 1. 5

我在构建时收到警告消息!warning:[options]bootstrapclasspathnotsetinconjunctionwith-source1.5我该如何解决? 最佳答案 来自blogpost:TousejavacfromJDKNtocross-compilertoanolderplatformversion,thecorrectpracticeisto:Usetheolder-sourcesetting.Setthebootclasspathtocompileagainstthert.jar(orequivalent

java - `Optional.orElse()` 和 `Optional.orElseGet()` 之间的区别

我试图了解Optional.orElse()之间的区别和Optional.orElseGet()方法。orElse()的描述方法是“如果存在则返回值,否则返回其他值。”同时,orElseGet()的描述方法是“如果存在则返回值,否则调用其他值并返回该调用的结果。”orElseGet()方法采用Supplier功能接口(interface),该接口(interface)本质上不带任何参数并返回T.在什么情况下需要使用orElseGet()?如果你有方法TmyDefault()你为什么不直接做optional.orElse(myDefault())而不是optional.orElseGet