首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Kotlin 是如何避免空指针问题的

    可空类型 默认声明的变量是不能为 null 的,如果要使变量能为 null, 需要添加 ?操作符。...= if ... else null 安全空访问 智能类型转换是一个相当好的特点,可以安全访问可空变量。例如: var name: String? = "harry" if (name !...name 非空断言 有时候,要将可空的变量转成非空的, 常见于Java, 我们知道变量是不可能为 null 的, 可以用非空断言 !!。例如: val nullableString: String?...Int #原理 为了更好的理解Kotlin空指针的原理。下面来看一下Kotlin是如何利用工具给开发者在编译前给出提示的。...以下面的Java判断空值方法为例: public void foo(Bar bar) { /*…*/ } 对于这样一个典型的方法,如果传入的参数为null,那么通常的处理方式是检查输入: public

    2K70

    Kotlin 是如何避免空指针问题的

    可空类型 默认声明的变量是不能为 null 的,如果要使变量能为 null, 需要添加 ?操作符。...= if ... else null 安全空访问 智能类型转换是一个相当好的特点,可以安全访问可空变量。例如: var name: String? = "harry" if (name !...name 非空断言 有时候,要将可空的变量转成非空的, 常见于Java, 我们知道变量是不可能为 null 的, 可以用非空断言 !!。例如: val nullableString: String?...Int 原理 为了更好的理解Kotlin空指针的原理。下面来看一下Kotlin是如何利用工具给开发者在编译前给出提示的。...以下面的Java判断空值方法为例: public void foo(Bar bar) { /*…*/ } 对于这样一个典型的方法,如果传入的参数为null,那么通常的处理方式是检查输入: public

    2.7K70

    是时候跟你的空指针说再见了

    示例代码如下(命名来自网络,哈哈到底是有多懒): Nullable是空对象的相关操作接口,用于确定对象是否为空,因为在空对象模式中,对象为空会被包装成一个Object,成为Null Object,该对象会对原有对象的所有方法进行空实现...,更具体的内容大家也可以多找一找资料,上述只是对NullObject的简单介绍,但是,今天我要推荐的是一款协助判空的插件NR Null Object,让我们来优雅地进行判空,不再进行一顿操作来定义繁琐的空对象接口与空独享实现类...Optional 还有一种方式是使用Java8特性中的Optional来进行优雅地判空,Optional来自官方的介绍如下: A container object which may or may not...有如下代码,需要获得Test2中的Info信息,但是参数为Test4,我们要一层层的申请,每一层都获得的对象都可能是空,最后的代码看起来就像这样。...你也可以直接引入Google的Guava。(啥是Guava?

    1.2K30

    是时候跟你的空指针说再见了

    示例代码如下(命名来自网络,哈哈到底是有多懒): Nullable是空对象的相关操作接口,用于确定对象是否为空,因为在空对象模式中,对象为空会被包装成一个Object,成为Null Object,该对象会对原有对象的所有方法进行空实现...,更具体的内容大家也可以多找一找资料,上述只是对NullObject的简单介绍,但是,今天我要推荐的是一款协助判空的插件NR Null Object,让我们来优雅地进行判空,不再进行一顿操作来定义繁琐的空对象接口与空独享实现类...Optional 还有一种方式是使用Java8特性中的Optional来进行优雅地判空,Optional来自官方的介绍如下: A container object which may or may not...有如下代码,需要获得Test2中的Info信息,但是参数为Test4,我们要一层层的申请,每一层都获得的对象都可能是空,最后的代码看起来就像这样。...你也可以直接引入Google的Guava。(啥是Guava?

    81220

    【周末漫谈】空巢青年数据,“空巢”是选择还是无奈?

    而远离家乡,身处都市的高楼广厦,面对夜晚的万家灯火,人总是容易心生孤独,大概所谓城市,就是几百万人一起孤独的地方。...“空巢青年”这个新的群体命名最近广为流传,是指那些独自在城市打拼的年轻人,单身、上班族、独在异乡……这些是他们的人群标签;一个人吃饭旅行,到处走走停停,一个人等天亮,一个人等天黑……“一个人”是他们的生活常态...如何看待空巢青年?“事实上,它代表着重大的社会变革——我们正在学习单身,并由此带来了全新的生活方式。”纽约大学社会学教授克里南伯格对这个现象的看法就比较乐观。...的确,我们不应该把这个群体刻意放大,对于刚毕业不久的年轻人,在没有成家立业之前,独处是人生必经的一个阶段,毕竟很多路是要一个人走的。...对于那些无法忍受孤独的青年,可以选择离开狭小的房间,去感受外面世界的精彩,生活在别处,很多有趣的人等你去遇见,美好的故事等待你去发生。毕竟,我们从不孤独,只是缺少相遇。

    1.1K40

    Windows 无法删除文件夹 —— 访问被拒绝 因为目录不是空的

    Windows 无法删除文件夹 —— 访问被拒绝 / 因为目录不是空的 发布于 2018-08-13 09:21...如果使用命令行删除,则会提示“无法删除文件夹 XXX,目录不是空的。”。 本文将介绍其原因并提供解决方案。...尤其是以上这种 NuGet 缓存目录下的文件夹,和权限更是扯不上关系。 所以其实点了“继续”也并没有什么左右,依然是没完没了的错误。 ?...意思是说,命令行在删除其中一个子文件夹的时候出错,原因是:“目录不是空的。” 如果继续翻看下面的错误提示,发现这是一个按文件夹递归的提示。...▲ 因为删除太快,好不容易抓到的一张图 所以什么“需要管理员权限”啊,什么“目录不是空的”,都是假的!!!真正的原因还是文件夹被占用。

    14.9K10

    面试题:什么是空 Referer,什么时候会出现空 Referer?

    面试题:什么是空 Referer,什么时候会出现空 Referer? 空 Referrer 是指 HTTP 请求头中的 Referer 值为空。...需要注意的是,对于某些高安全级别的站点(如银行、商业),管理员可能会限制请求头中 Referrer 的内容或者强制使用 HTTPS 协议,并且只允许同源站点能够获取相关信息。...空 Referrer 可以用于某些攻击手段,如 CSS 攻击、URL 记录和统计等,同时也可以用于隐私保护,降低定向广告的精度分析和重复点击猪仔的威胁。...为了保证应用程序的安全和便利性,在实际开发中,可以采取一些技术方案来规避空 Referrer 带来的问题,包括: 阻止第三方带空 referring:目前大多数 Web 框架、防火墙会禁止空 Referrer...加强对第三方攻击和跨站脚本攻击 CSRF 的防范。 控制应用程序行为:尝试降低渗透测试的攻击几率,比如将表单提交地址和共享文件链接设为只有页面上专门生成的临时链接才能访问。

    72900

    空与非空:浅谈非空约束的影响

    黄玮(Fuyuncat) 资深Oracle DBA,个人网www.HelloDBA.com,致力于数据库底层技术的研究,其作品获得广大同行的高度评价. 非空约束是字段的一个重要属性。...但是,很多时候,数据库表的设计人员似乎并不十分在意这个属性。最常见的现象就是,除了主键字段外,所有字段都不指定该属性。而在Oracle中,默认是允许为空。...而实际上,优化器在选择执行计划时,非空约束是一个重要的影响因素。为了说明问题,我们建立以下测试表,然后分别说明非空约束在各种情况下对执行计划和性能的影响。...而如果我们加上非空约束,可以看到执行计划已经性能的变化: 统计信息如下: 注意到,在全表扫描之前,增加了一个filter,而fileter的表达式是NULL IS NOT NULL,其逻辑结果是FALSE...而关联是同等价匹配(=)实现的,不适合空值数据。因此,关联字段可能存在空值时,无法采用ANTI-JOIN。

    4.2K40

    空芯光纤 -- 什么是光子带隙光纤?

    这类光纤的纤芯是实心的,传输原理是基于全内反射(Total Internal Reflection, TIR),其中光纤芯的折射率 纤芯 > 包层。...日常用的镜子,折射率大于1,因此对于空芯波导,我们要将其空芯的折射率小于包层材料的折射率即可。 早期,贝尔实验室在空心管的内部涂上一层铜的导电边界,管中间是空心的。...当康宁公司开发出损耗为 17dB/km 的硅芯光纤,这些金属波导的热度才褪去。但是这种空芯光纤的思想却延续着。 除了这种方法,还有另一种产生高反射表面的物理机制:光子带隙。...因此,这种空芯光纤也被叫作布拉格光纤(不是光纤布拉格光栅哈)。 再就是二维光子带隙光纤,是利用二维周期光子晶体实现的镜子。...可以简单理解是在波导结构上打了很多孔,这些有孔洞的地方对特定频率的光是禁止通行的。中间空芯的部分则是可以让这部分频率的光通过,从而形成波导。 还有一种嵌套式反谐振空芯光纤。

    55311

    服务器是干嘛的

    大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说服务器是干嘛的[服务器和客户端区别],希望能够帮助大家进步!!! 今天有个网友问我如何编写一个DCOM服务器,可以在C#的客户端中调用。...实际上,C#调用DCOM服务器的时候,只需要在C#这边做一些手脚,对于原先的C++ DCOM服务器来说,是不需要做任何改动的。...这样做的目的,是为了让本文能够更专注的解释C#客户端使用DCOM服务器的过程—因为把COM库后台执行的操作尽可能地排除掉了。 下面是这个DCOM服务器的源代码: 1....所以C++的客户端代码里,你可以通过编程的方式指定服务器的名称,但是对于C#来说,因为连接到DCOM服务器并激活COM对象的操作是由CLR完成的,没有办法在代码里指定。...a) 至于COM运行库是如何根据CLSID启动DCOM服务器的,这篇文章里不讲,因为本文中我们的DCOM服务器是需要手工启动的。 2.

    8.2K31

    使用sshfs挂载远程服务器目录

    服务器日志查看,是开发人员和服务器运维人员在工作中经常会遇到的一件事情,只有一台服务器时,比较好办,直接登录服务器使用tail -f file-path 命令就可以实时查看到日志文件的输出。...把远程服务器的 /mydata/logs/目录下的所有文件,挂载到D服务器,在D服务器的/mydata/logs/目录下为每个服务器建一个目录。...(ip_address_A代表A服务器的ip地址,需要自行替换) //把A服务器的 /mydata/logs/ 目录 挂载到 D服务器的 /mydata/logs/A/ 目录 sshfs root@ip_address_A...(假设A、B、C三台服务器的/mydata/logs/目录下都有log.txt这个文件) tail -f */log.txt 日志的输出中,会标出日志是在哪台服务器的,例如: ==> A/log.txt...需要注意的是,取消挂载时,不要直接删除挂载目录,请使用以下命令取消挂载: fusermount -u /mydata/logs/A 或者直接使用umount命令取消挂载。

    2.1K40
    领券