这个空检查有什么问题吗?

发布于 2024-10-03 06:17:22 字数 346 浏览 3 评论 0原文

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0)
{
    LOGGER.warn("results empty");
}
else
{
    LOGGER.warn("results:" + results.toString());
}

当 getResults 返回 null 列表时,上面的代码始终会产生以下输出。

results:[null]

我需要响应这个空场景,但不知道如何捕获它。

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0)
{
    LOGGER.warn("results empty");
}
else
{
    LOGGER.warn("results:" + results.toString());
}

The code above always produces the following output when getResults returns a null List.

results:[null]

I need to respond to this null scenario but don't know how to catch it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

各自安好 2024-10-10 06:17:22

我认为结果列表中有一项为空值。

我认为方法是检查列表的第 0 个位置是否包含空值,如果不包含,则列表至少包含一个非空值。

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0) {
    LOGGER.warn("results empty");
} else if (list.get(0) == null){
    LOGGER.warn("the list has only an null value");
} else {
    LOGGER.warn("results:" + results.toString());
}

或者

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0 || list.get(0) == null) {
    LOGGER.warn("results empty");
} else {
    LOGGER.warn("results:" + results.toString());
}

I think the results list has one item which is a null value.

I think the way is to check whether the list contains a null value at the the 0th location, if not then the list contains at least one not null value.

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0) {
    LOGGER.warn("results empty");
} else if (list.get(0) == null){
    LOGGER.warn("the list has only an null value");
} else {
    LOGGER.warn("results:" + results.toString());
}

Or

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0 || list.get(0) == null) {
    LOGGER.warn("results empty");
} else {
    LOGGER.warn("results:" + results.toString());
}
剩余の解释 2024-10-10 06:17:22

根据您的输出,getResults() 返回的 List 看起来有一个 null 元素。

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0) // you could add the check here
{
    LOGGER.warn("results empty");
}
else if(results.size() == 1 && results.get(0) == null) // Or a new else if here
{
    LOGGER.warn("all I've got is a null in my list :(");
}
else
{
    LOGGER.warn("results:" + results.toString());
}

Based on your output, it looks like the List returned by getResults() has one null element.

List<Foo> results = null;
results = this.getResults();
if (results == null || results.size() == 0) // you could add the check here
{
    LOGGER.warn("results empty");
}
else if(results.size() == 1 && results.get(0) == null) // Or a new else if here
{
    LOGGER.warn("all I've got is a null in my list :(");
}
else
{
    LOGGER.warn("results:" + results.toString());
}
滥情哥ㄟ 2024-10-10 06:17:22

每个人都正确地认为您的列表包含一个空值。但是,我不明白为什么需要检查第一个元素是否为空。看起来更像是您需要重新考虑 getResults() 中发生的情况,并且将 null 放入列表中。我的意思是,我们没有理由假设不能有更多的空值,或者空值位于实际对象之间。

Everyone is correct that your list contains one null value. However, I don't understand why it's necessary to check to see if the first element is null. It looks more like you need to rethink what's going on in getResults() and not put null in the list. I mean, there's no reason for us to assume there can't more more nulls, or nulls sitting in between actual objects.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文