此问题已经在这里有了答案:
我正在编写Xamarin.Android应用程序,并在其中使用JSON API,当它无法在数据库中找到对象时,它只是为数据字段返回一个空字符串。这不是一个好的设计,但是我无法更改。为了检查这种可能性,我编写了这个简短的函数,将其绑定到LanguageExt.Either对象(包含JsonObject),并在数据为null时返回左值。
private Either<Exception, T> CheckData<T>(T json) where T : JsonObject
{
if (json.Data == null)
{
return Left<Exception, T>(new KeyNotFoundException());
}
else
{
return Right(json);
}
}
问题是,它总是返回一个左值。尝试将条件更改为json.Data.Equals(null)
会引发NullPointerException。到目前为止,我猜想我那里实际上是空值,但是当我在调试器中逐步执行程序时,即使我在if行上添加了断点,它也肯定是空的而不是空值。老实说,我的机智到底是什么,一个对象怎么可能为null,而在调试器中却不能为null?
我正在编写Xamarin.Android应用程序,并在其中使用JSON API,当它无法在数据库中找到对象时,它只是为数据字段返回一个空字符串。这不是一个好的设计,但我不能...
使用==