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“一旦消除了不可能,剩下的任何东西,无论多么不可能,都必须是事实。”