草庐IT

null-coalescing

全部标签

java - Hibernate 在 ManyToOne 关系中处理 long 0 值而不是 NULL

我使用Hibernate访问遗留数据库。对于某些表,未强制执行父子引用完整性,并且子表中的某些“父”列使用long0值而不是NULL来表示“无父”。我仍然想在@ManyToOne和@OneToMany字段中使用这些关系,但是得到EntityNotFound错误,因为0值不对应到主表中的任何记录。我有哪些选择? 最佳答案 使用NotFound注释:@NotFound(action=NotFoundAction.IGNORE)参见http://docs.jboss.org/hibernate/core/3.6/reference/en-

java - System.console() 从 Eclipse 返回 null 但在命令提示符下没问题

当我从EclipseHelios使用System.console时,它​​总是返回null。但是,当我直接从命令行使用它时(即从命令提示符手动编译和执行java源代码),我确实得到了一个控制台对象。为了知道为什么会发生这种情况,我检查了this关联。根据它,当我从Eclipse运行我的Java代码时,后台作业调度程序必须启动我的JVM。这是什么意思?当我从命令行启动时,我的JVM启动有何不同?我还检查了this关联。McDowell在这里说cmd.exe是一个控制台设备。那么我再次感到困惑,这到底是一个控制台设备? 最佳答案 因为是

Java HashMap 在 get() 调用时返回 null

我们在尝试获取与HashMap中给定键关联的值时观察到NullPointerException。以下是我将用来说明问题的示例代码。publicclassTest{privateMapemployeeNameToAgeMap=newHashMap();publicintgetAge(StringemployeeName){if(!employeeNameToAgeMap.containsKey(employeeName)){intage=getAgeFromSomeCustomAPI(employeeName);employeeNameToAgeMap.put(employeeName,

java - 为什么在 Java 中允许初始化对 Null 的引用?

在以下使用JDBC的示例中(尽管这个问题并不特定于JDBC):Connectionconn=null;try{.....DothenormalJDBCthinghere....}catch(SQLExceptionse){if(conn!=null){conn.close();}}如果我没有将conn初始化为null那么编译器会提示说在catchblock中我不能使用一个没有的引用被初始化。Java默认将对象引用初始化为null那么为什么我需要显式地将其初始化为null。如果编译器不喜欢以null开头的引用的原始值,为什么它甚至接受我的显式初始化?注意:我使用EclipseLuna作为

java - JsonParseException : Unrecognized token 'http' : was expecting ('true' , 'false' 或 'null' )

我们有以下字符串,它是写入HDFS文件的有效JSON。{"id":"tag:search.twitter.com,2005:564407444843950080","objectType":"activity","actor":{"objectType":"person","id":"id:twitter.com:2302910022","link":"http%3A%2F%2Fwww.twitter.com%2Fme7me4610012","displayName":"","postedTime":"2014-01-21T11:06:06.000Z","image":"https%3

java - Spring @Value 注释返回 null

我正在尝试利用@Value注释并从属性文件自动填充我的字符串变量,但没有成功。值未设置且为null。这是我的配置:SendMessageController.java@RestControllerpublicclassSendMessageController{@Value("${client.keystore.type}")privatestaticStringkeystoreType;@RequestMapping(value="/sendMessage",method=RequestMethod.POST)publicResponseEntitysendMessage(@Vali

java - 检查 Set 是否不包含 null 的好方法

我有一个方法,它被赋予一组Set对象。它委托(delegate)的方法要求Set不包含任何空元素。我想checkthepreconditionSet在委托(delegate)之前的方法中早期不包含空元素。这样做的明显代码是这样的:publicvoidscan(SetplugIns){if(plugIns==null){thrownewNullPointerException("plugIns");}elseif(plugIns.contains(null)){thrownewNullPointerException("plugInsnullelement");}//Body}但这是不正

Java + Swing : writing code to coalesce change events

我有这个数据流,大致是:DataGenerator->DataFormatter->UIDataGenerator是一种快速生成数据的东西;DataFormatter是为了显示目的而对其进行格式化的东西;UI只是一堆Swing元素。我想让我的DataGenerator像这样:classDataGenerator{finalprivatePropertyChangeSupportpcs;...publicvoidaddPropertyChangeListener(PropertyChangeListenerpcl){this.pcs.addPropertyChangeListener(p

java - 断言失败错误 : null on boolean method

我正在测试一个将两个对象作为参数并返回boolean的方法.当我使用和assertTrue或assertFalse在有问题的方法上,我得到以下测试失败:junit.framework.AssertionFailedError:null.我知道我正在传递无效参数并且可能会导致NPE在方法中,但这不是正在发生的事情,而是测试失败了。注意:我正在使用boolean而不是Boolean.示例代码:类:publicclassMyClass{publicbooleanfoo(MyObject1lhs,MyObject2rhs){//doSomething//returnsomething}}测试:

java - 我可以使用 Guava 的 ComparisonChain 以特殊方式处理 null 字段吗?

我有一个包含多个字段的ComplexObject,我想这样说:如果两者都存在字段x,则继续比较链中的下一个compare。如果两者都为空,则继续进行比较链中的下一个compare。如果一个为空而另一个不为空,则将空值放在最后我不知道该怎么做,因为据我所知.compare(c1.getX(),c2.getX(),Ordering.arbitrary().nullsLast())将如果对象都存在且相等,则认为它们相等如果两个对象都为空,则认为它们是相等的。有没有一种方法可以使用Guava的ComparisonChain或Ordering类来实现我想要的?或者有没有更好的方法来考虑解决这个问