问题标签 [null-object-pattern]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

android - 如何解决空引用错误?我是新手

它说我的 getOutletId() 是空引用,我认为我已经声明了。所以基本上这是一个预订步骤 4。第一步,用户需要从 firestore 中选择出口并选择哪个分支,我已经包含到 setOutlet id。然后第二步将显示工作人员。我从firestore获得的所有信息除了Id,我都是手动完成的。有人可以帮我解决这个问题吗?

这是我在预订步骤 1 片段中设置出口 ID 的地方

这是我的预订活动,其中 outletId 开始显示

这是我的日志猫

进程:com.example.CarServiceBooking,PID:12259 java.lang.NullPointerException:尝试在 com 的空对象引用上调用虚拟方法“java.lang.String com.example.CarServiceBooking.Model.Outlet.getOutletId()”。 example.CarServiceBooking.Fragment.BookingStep4Fragment$3$2.onSuccess(BookingStep4Fragment.java:216) 在 com.example.CarServiceBooking.Fragment.BookingStep4Fragment$3$2.onSuccess(BookingStep4Fragment.java:199) 在 com.google.android.gms.tasks。 zzn.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java: 135) 在 android.app.ActivityThread.main(ActivityThread.java:5254) 在 java.lang.reflect.Method.invoke(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:372) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit. java:903) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

这是我的普通课

这是我的 BookingStep4Fragment,logcat 说它是空引用

这是我的奥特莱斯课

0 投票
3 回答
259 浏览

kotlin - 为什么不在 Kotlin 中为 NULL 对象实现单例模式?

NULL 对象在 Kotlin 中有效吗?

尽管 Kotlin 允许在构造函数中添加默认值,但是否有理由不鼓励使用 NULL 对象,就像上面的代码片段一样?

假设我不需要只使用一个参数来构造对象,例如:Foo("ABC") 或 Foo(5)。(...在修改 Foo 以在构造函数中具有默认值之后)

https://sourcemaking.com/design_patterns/null_object

0 投票
1 回答
133 浏览

javascript - Javascript 检查空对象和缓存值

在 javascript 重新介绍中,我经历了2 个示例,但我不知道何时何地使用它们。下面引用一段话:

&& 和 || 运算符使用短路逻辑,这意味着他们是否会执行第二个操作数取决于第一个操作数。这对于在访问它们的属性之前检查空对象很有用: var name = o && o.getName();

或用于缓存值(当虚假值无效时):var name = cachedName || (cachedName = getName());

名称是否包含布尔值,如果是,那有什么用?这可能是一个菜鸟问题,但我希望有人可以用一个例子来解释它。

0 投票
1 回答
27 浏览

after-effects - 我如何稍微改变连接到空对象的后效应中的对象的位置?

我试图只稍微改变一个被鞭打为空的物体的毒药

thisComp.add(125,250).layer("Null 1").transform.position

它不起作用。

现在一个 null 确保对象正在向前移动,但它使我的对象向前移动太多并使我的对象太大。

0 投票
2 回答
50 浏览

c# - _base_ 值上的空对象模式

假设我们有以下 DTO 对象,它表示数据库中的记录:

所以Id属性不可为空并且ExpireOn是。我在基于空对象模式实现域对象时遇到问题,因为我不知道如何实现不可为空的ExpireOn属性。执行此操作的最佳实用方法是什么?

0 投票
1 回答
140 浏览

entity-framework-core - EF Core 可选 ValueObject 作为身份

我使用值对象作为身份,想知道如何最好地处理 EF 核心中的空值。

例如,如果我的员工具有可选头衔(先生、夫人等):

我可以在我的代码中到处检查空值,例如

或者我可以使用默认值,例如

实施EmployeeTitleId如下:

我更喜欢第二种方法,因为它看起来更干净,但我不知道这是否矫枉过正。它还需要在实体框架方面进行更多设置,例如:

这似乎是一种可行的方法,还是我应该坚持检查空值?如果是这样,是否有我可以在实体类型配置中使用的约定,这样我就不必手动设置每个 HasConversion?

0 投票
2 回答
1679 浏览

java - Java 记录和空对象模式?

有没有办法用 Java 记录做空对象?对于课程,我会这样做:

但这不起作用,因为每个构造函数都需要通过规范的 ( Id(String id) 构造函数,而我不能只调用super()来绕过不变量。

现在我解决这个问题

但这感觉不对,并且容易出现并发问题。

我还没有发现很多关于唱片背后的设计理念的讨论,这可能已经讨论过了。如果是这样保持简单,那是可以理解的,但感觉很尴尬,我已经在小样本中多次遇到过这个问题。

0 投票
1 回答
302 浏览

c# - system.text.json 在序列化时显式设置空属性而忽略未设置的属性

我正在尝试将 POCO 对象序列化为更新请求。

我未设置的值被序列化为 null,这导致它们被更新为 null。

如果我将 IgnoreNullValues 设置为 true,则可以解决问题。但是,没有办法将属性显式更新为 null。

我在想解决这个问题的方法是创建一个自定义的 null 对象,该对象序列化为 null 并忽略真正的 null 值。这可能吗?我还能如何解决这个问题?

编辑:添加了我正在尝试序列化的 POCO 请求对象的示例

我想要以下

...但是这当然行不通,因为所有未设置的字段也是空的,因此它们与 JobTitle 相同。这就是为什么我想知道是否需要使用空对象模式来定义 JobTitle 应该显式设置为空。

0 投票
10 回答
16342 浏览

c# - 为什么我作为 webView2 对象的 coreWebView2 为空?

我正在创建 Microsoft.Web.WebView2.WinForm.WebView2 的对象,但这个 coreWebView2 的子对象为空

0 投票
0 回答
52 浏览

java - 通过单击项目开始另一个活动(recyclerview 列表)

我的主要活动(MainActivity)包含回收器视图,其中包含卡片视图中的图像和文本列表。我试图在每个卡片视图上放置单独的 onCLick 侦听器,以便在单击任何卡片视图时,下一个活动开始(MainActivity2)。卡片视图显示频道图像和名称,当点击任何频道时,用户将移至该频道的视频列表。 回收站视图的 MAinActivity 代码

它加载为 水平回收站视图 接口ItemClickListener定义为

适配器和视图持有者类定义为;

MAinActivity 2 是使用 youtube DataAPI 的频道视频的 Recycler View List;代码摘录是;

这是我想在点击时运行的 MainActivity2 的屏幕截图。 主活动2

但是当我点击图标时,应用程序崩溃了。日志错误显示为;

当我在 MainActivity 2 中添加意图时,我无法理解为什么它会给出空对象引用