gpt4 book ai didi

java - 测试对象是否为空的通用代码?

转载 作者:行者123 更新时间:2023-11-29 03:02:34 26 4
gpt4 key购买 nike

有人可以帮我提供一个通用的优化代码来测试空对象吗?我主要寻找的是一种方法,它可以将任何对象作为输入,也可能是路径,并返回一个 boolean 值,指定目标对象是否为 null。

像这样:

public boolean isNull(Object Obj, String Path){
// ...
}

路径类似于:A.getB().getC()。 . .

所以A作为对象传递,isNull方法首先调用getB()检查返回的对象是否不是null然后调用getC() 等等。

最佳答案

注释中有大量突出显示的技术可用于避免 null 检查。

如果你真的需要写一些东西来做一般的 null 检查,你可以构建一个小的对象图,它使用 Function 来遍历被检查的图,比如这个:

public class NullCheck<T>
{
private T root;

public NullCheck(T root)
{
this.root = root;
}

public <C> NullCheck<C> with(Function<T, C> getter)
{
return root != null ? new NullCheck<>(getter.apply(root)) : new NullCheck<>(null);
}

public boolean isNull()
{
return root == null;
}

public boolean isNotNull()
{
return root != null;
}
}

给定一个 Person,它有一个 Address,它有一个 zipCode 属性,你可以使用 NullCheck 编写如下代码:

if (new NullCheck<>(person).with(Person::getAddress).with(Address::getZipCode).isNotNull())
{
...
}

关于java - 测试对象是否为空的通用代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com