java option作用_java – 类Option [T]的意义是什么?
如果你强迫自己永远不要使用get,你会得到Option的更好的点。这是因为get相当于“确定,送我回到空地”。
所以,拿你的例子。你如何调用显示而不使用get?这里有一些替代方案:
getPerson2 foreach (_.display)
for (person
getPerson2 match {
case Some(person) => person.display
case _ =>
}
getPerson2.getOrElse(Person("Unknown", 0)).display
这些替代方法都不会让你调用显示在不存在的东西。
至于为什么存在,Scala不告诉你你的代码应该如何写。它可以轻轻地刺激你,但如果你想回到没有安全网,这是你的选择。
你把它钉在这里:
is the only advantage of Option[T] is
that it explicitly tells the
programmer that this method could
return None?
除了“唯一”。但让我以另一种方式重申:Option [T]对T的主要优点是类型安全。它确保你不会发送一个T方法到一个可能不存在的对象,因为编译器不会让你。
你说你必须在这两种情况下测试可空性,但如果你忘记 – 或不知道 – 你必须检查null,编译器会告诉你吗?或者您的用户?
当然,因为它与Java的互操作性,Scala允许null,就像Java一样。所以,如果你使用Java库,如果你使用写得不好的Scala库,或者如果你使用写得很差的个人Scala库,你仍然必须处理空指针。
选项I的其他两个重要优点是可以想到的是:
>文档:方法类型签名将告诉你是否总是返回一个对象。
>单能组合性。
后者需要更长的时间才能完全理解,它不是很适合简单的例子,因为它只显示其复杂的代码的实力。所以,我会举一个例子如下,但我很清楚,它几乎不会有什么,除了已经得到它的人。
for {
person
} yield (person, email)
java option作用_java – 类Option [T]的意义是什么?相关推荐
- java comparable接口作用_Java 中 Comparable 接口的意义和用法
一, 为何需要实现Comparable接口 我们知道Collections类中包含很多对实现Collection接口的容器各种操作的静态方法. 当然, 其中最长用的莫过于排序了(Collections ...
- java类与对象作用_Java类与对象
●类和对象的关系: 一:类是对同一类事物(对象)的抽象,对象实际存在的该类的各种实体. 二:面向对编程的核心:找合适的对象来做合适的事. 三:Java中找到对象: 1):sun自己定义好的类,必须知道 ...
- java wrapper作用_java Wrapper类基本用法详解
在封装中有一种特殊的类,能够把基本的数据类型进行转换来方便实际的使用.我们在之前提到的一些数据类型,最明显的特征是所有字母为小写状态,那么经过wrapper的包装后,首字母就变成了大写.下面我们就这种 ...
- java初始化实例化_Java 类初始化和实例化以及多态理解
前言 本篇主要讲解了类的初始化.实例化.静态代码块.构造器.getClass().super.this 等相关的知识点,做一个总结. demo 老规矩,看代码: Father.java public ...
- java控制面板作用_Java
1. JAVA 的特性和优势 (1) Java的核心优势 跨平台/可移植性 (2) 其他特性 安全性:面对对象:简单性:高性能:分布式:多线程:健壮性: ① 强大的生态系统 (3) Java与C++的 ...
- java无参_Java——类的无参、带参方法
>类的无参方法 什么是类的方法 类是由一组具有相同属性和共同行为的实体抽象而来.对象执行的操作是通过编写类的方法实现的.显而易见,类的方法是一个功能模块,其作用是"做一件事情" ...
- java finalize 作用_Java编程之详解finalize
前言 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法. finalize的作用 (1)finalize()与C++中的析 ...
- java 属性 方法_Java类的属性与方法
<Java类的属性与方法>由会员分享,可在线阅读,更多相关<Java类的属性与方法(24页珍藏版)>请在人人文库网上搜索. 1.教师: 班级:,第11讲 类的方法,回顾,1.成 ...
- java泛型方法作用_java泛型的作用与使用方法是什么?
泛型,即"参数化类型".一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参.那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变 ...
最新文章
- Android 与 JS 的交互 以及 JS与Android 的交互
- 防止论坛批量小广告指南
- 使用SmsManager服务群发短信
- 如何使用 Python 进行时间序列预测?
- 2.异步回调检测线程结束
- html匹配属性正则表达式,正则表达式匹配html标签的属性值
- HashMap 源码阅读
- ubuntu 安装配置mysql
- centOS安装openoffice4.1.6 并解决字体乱码
- 翼支付高速发展背后,甜橙金融的云化智能变革
- UE4_虚幻引擎4多人联机基础知识和客户端服务器通信机制详解
- 如何在bat文件中切换盘符并执行命令
- 华为AR1220路由器配置GRE隧道
- 新浪服务器mysql_php新浪云链接mysql与storage
- 推荐系统实战 --- 基于音乐播放推荐
- Python使用selenium模拟登陆,截取图片验证码并转化为base64
- ubuntu下查看电脑系统信息
- 2016年11月16日18:39:32
- 计算机环境安全容器服务未启动怎么解决,音频服务未运行|音频服务未启动 - 音频服务未运行的解决办法 - 安全专题...
- C语言中的字符串转数字函数常见问题详解