草庐IT

opt_options

全部标签

java - Option[T] 类的意义何在?

我无法理解Scala中Option[T]类的意义。我的意思是,我看不到None优于null的任何优点。例如,考虑代码:objectMain{classPerson(name:String,varage:int){defdisplay=println(name+""+age)}defgetPerson1:Person={//returnsaPersoninstanceornull}defgetPerson2:Option[Person]={//returnseitherSome[Person]orNone}defmain(argv:Array[String]):Unit={valp=ge

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 - CATALINA_OPTS 与 JAVA_OPTS - 有什么区别?

我试图找出SO中的ApacheTomcat变量-CATALINA_OPTS和JAVA_OPTS之间的区别惊讶地发现这里还没有发布任何问题/答案。所以我想在发现差异后在这里分享它(有答案)。检查下面的答案/差异。注意:在发布本文时,我们在CentOS564位架构上运行ApacheTomcatv6.0.10和JDK6u32。 最佳答案 有两个环境变量-CATALINA_OPTS和JAVA_OPTS-都用于Tomcat的catalina.sh启动和关闭脚本。CATALINA_OPTS:Commentinsidecatalina.sh:#C

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