- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Mono.just(null) 不会编译。这是为什么?
在程序层面上,我明白了。有一个没有要处理的东西的处理队列是没有意义的。有人可以用更深入的技术为我解释这个吗?
最佳答案
出租有高风险null
进入一个应用程序/库,如果你能禁止它,就应该禁止它。
Null
就像让炸弹进入你的应用程序,如果有可能是 null
,然后某些东西可以用 NullPointerException
爆炸随时。
null
始终在应用程序中产生巨大的不确定性。你应该总是清理掉 null
越早越好。
人们通过做 null
来解决这个问题检查,无处不在,这基本上是多余的操作。
先生。 Tony Hoare - null
的发明者著名地声称 null
是他的:
billion dollar mistake.
有很多编程语言没有 null,这里有一个很长的列表:
List of languages without null
拥有null
在流中是没有意义的,因为这也意味着 react 堆库必须做 null
检查他们的代码以确保他们不会尝试对 null
进行操作值(value)。每个人都必须做 null
检查每个 flatMap
, map
, filter
, operator
等等,因为可能有潜在的NullPointerException
在所有这些运算符中。
所以他们有机会排除null
,这很有意义,因为 null
不是值,并且只有值可以在流中传输,所以这可能就是他们决定反对它的原因。
相反,他们决定使用类型 Void
代表“无”,可以通过调用Mono<Void> nothing = Mono.empty();
获得这是类型安全的,如果您触摸它不会爆炸,并且会按照您的预期运行,因为开发人员控制它,而不是运行时。
我反而会问自己,为什么你真的需要 null
?我猜是因为您已经习惯了,习惯性地编写代码是不好的。
我看到 null 被使用的次数有 95% 可以被删除。
学习如何在没有 null
的情况下编码,养成使用默认值、回退值等的习惯。这很可能会使您的程序更健壮,更具确定性。
关于spring-webflux - 为什么 Mono 不能持有 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69461051/
来自 Java/C# 背景,我正在尝试实现一个空安全检查对象。以下代码尝试检查对象上是否确实存在颜色。如果有,我希望能够做一些事情(比如在形状上绘制颜色)。我希望能够将此颜色设置回 null (non
目前,我正在使用来自 Boost Vault 的类型安全枚举类: Which Typesafe Enum in C++ Are You Using? 我发现很难有一个父类指针来引用所有枚举类,因为 B
假设我设置了一个存储库。我希望有的用户可以推送,有的用户我想先过一遍推送的内容再批准。有条件推送之类的概念吗?待批准推送队列? 最佳答案 您本质上需要一个代码审查工具。 git 有一些,但最好的可能是
我使用 Windows 版 git bash 和 Beyond & Compare 作为我的差异工具(但同样的事情发生在任何外部差异工具上)。 我希望我的终端不要等待 difftool 退出以返回终端
这个问题在这里已经有了答案: SVN: Is there a way to mark a file as "do not commit"? (18 个回答) 8年前关闭。 在某些情况下,作为开发环境设
Jcombobox 可以保存 int 吗?因为我尝试了这个并收到错误。 int[] timeSched = new int[] {200,300,400,500}; JComboBox Jcombo1
最近,我开始为我的游戏制作 map 编辑器,遇到了一些问题,我已经解决了这些问题。我现在的问题是我有一个 JFrame (主界面)。在该 JFrame 中,我有一个 JScrollPane,其中包含我
ElementAdapter类 package com.example.sierendeelementeninbreda; import android.content.Context; import
我能以某种方式将 jquery 对象作为 javascript 对象的键吗? (编辑)..作为关键.. var $a = $("#a"); var $b = $("#b"); var c = {};
我分两步解码 jpeg。 检查边界,必要时确定比例。 在屏幕限制内解码。 public static Bitmap decodeSampledBitmapFromInputStream(InputSt
谁能告诉我为什么下面代码中 $mytextarea 的范围没有扩展到 getAnswerToo() 函数中? getAnswer() 之所以有效,是因为我明确选择了要更新的元素。但是,尝试使用全局“处
如果我有实现接口(interface) I 的类 A 并将它传递到需要接口(interface) I 的地方,例如传递给线程,将这会阻止 GC 对 A 类的实例进行垃圾回收?我想是的,但我该如何解决呢
我正在使用 Swift3 和 Xcode 8.3.3 我正在研究持有 UICollectionView 的 UITableViewCell。每个 CollectionView 单元格都需要执行 seg
我正在使用 CVMetalTextureCacheCreateTextureFromImage 从 CVImageBuffer(来自相机和播放器)创建一个 MTLTexture 以获得 CVMetal
我有三个类:HopBill、HopBillController 和 HopBillSheetController。 HopBill 创建一个包含 NSMutableArray 的对象。出于测试目的,我
一些 Powermock/Mockito 文章提到了使用 PowerMock.mockStaticPartial 方法 - 唯一的问题是我在任何地方都找不到它! 有谁知道它存在于哪个 Artifact
我有一个显示新闻条目详细信息的 ViewPager。您可以在 30 个条目之间来回滑动。这些条目中的每一个都是一个包含 ImageView 的 View 。此 ImageView 使用 Picasso
操作应尽量保持与原始输入类型相同的答案,因此如果持有者以 Double 开头,则结果也应该是 double。 如果输入包含不同数字类型的持有者,那么它应该自动加宽等。 应该有一种带有 getter 的
比如,如果我编写如下所示的代码: const int & const_value = 10; 与看起来像这样的代码相比,我有什么优势: int value = 10; 或 const int cons
我在 Windows XP(代码:Block,MinGW)和 Ubuntu(11.04,G++)上运行了以下两段代码 我无法运行以下代码 #include using namespace std;
我是一名优秀的程序员,十分优秀!