Java 为什么此方法返回“0”;空";但不是空的
我有一个方法,可以从Java 为什么此方法返回“0”;空";但不是空的,java,java-stream,Java,Java Stream,我有一个方法,可以从汇款信息对象中提取一些信息 private static String combineStrings(RemittanceInformation remittanceInformation) { return Optional.ofNullable(remittanceInformation) .map(RemittanceInformation::getUstrds) .map(l ->
汇款信息
对象中提取一些信息
private static String combineStrings(RemittanceInformation remittanceInformation) {
return Optional.ofNullable(remittanceInformation)
.map(RemittanceInformation::getUstrds)
.map(l -> l.stream().collect(Collectors.joining(/* CRLF? */)))
.orElse(null);
}
现在汇款信息
中的所有内容都是null
,本例中的方法应该返回null
但是它返回带有双引号的
“null”
,为什么会出现这种行为?字符串的连接提供了一个字符串,如果有一个术语为null,则可能为“null”(“+null”)。必须是这样的:一个非null的汇款信息,其中getUstrds()给出一个具有单个null的集合。字符串的连接传递一个字符串,如果有一个术语为null,则可能为“null”(“”+null)。必须是这样的:一个非null的汇款单信息,其中getUstrds()给出一个带有单个null的集合。汇款单信息中的所有内容都是null
与汇款单信息==null
不同,对吗?如果您能确认的话,在您的情况下,它当然也不意味着getUstrds==null
。。。然后将您的代码与Stream.of(null,”).collect(collector.joining(/*CRLF?*/)进行比较
无法复制:汇款信息中的所有内容都是null
与汇款信息==null
不一样,对吗?当然,这也不意味着getUstrds==null
在您的情况下,如果您可以确认的话……然后将您的代码与Stream.of(null,”).collect(collector.joining(/*CRLF?*/)
无法复制:OP说“汇款单信息中的所有内容都是空的”,因此getUstrds()
返回null
,这意味着第二个映射(…)
没有被调用。我仔细查看了汇款单信息,发现getUstrds()返回的列表中只有一个元素,而该元素被设置为空“一旦你消除了不可能,剩下的一切,无论多么不可能,都是事实。”OP说“汇款信息中的一切都是空的”,所以getUstrds()
返回null
,这意味着第二个映射(…)
没有被调用。我仔细查看了汇款信息,发现getUstrds()返回一个只有一个元素的列表,该元素被设置为null“一旦消除了不可能,剩下的任何东西,无论多么不可能,都必须是事实。”