use*_*932 2 java optional java-8
我读了为什么Java 8的Optional不能用在参数中.但是Optional(Int|Long|Double),有什么理由反对使用它们作为输入参数?
正如我所理解的那样,它们不能是空的,而是null(Optional<X>输入参数中的主要参数参数),但可能还有其他的珊瑚礁?我应该使用OptionalInt或Integer使用null而不是null重视?
Ous*_* D. 10
这种不使用Optionals作为方法参数的想法不仅仅适用于Optional<T>所有类型的Optionals.
当你说:
正如我所理解的那样,它们不能为空,但是为null(
Optional<X>输入参数中的主参数参数)
首先,让我们只是让术语正确,当一个Optional<X>包含非空引用时,我们说它存在,否则我们说它Optional<X>是空的或不存在.你不应该说Optional<X>包含null.
无论是类型对象T还是基本类型的容器,所有Optionals都可以为空.
例如,如果您查看OptionalInt类文档,它会说:
容器对象,可能包含也可能不包含int值.如果存在值,则isPresent()将返回true,并且getAsInt()将返回该值.
强调我的.
当Optional不包含int值时,它是一个空的Optional.
我应该使用OptionalInt或Integer null和非null值吗?
至于使用OptionalInt还是Integer真的取决于你的用例.
T和原始类型的容器一样,它们是描述性的,并且允许应用不同类型的操作来提取值(如果存在)或者如果不存在则执行其他操作.Integer可以为任何字段赋值null.null在具有Integer返回类型的任何方法中返回.OptionalInt字段(有争议的)永远不应该被认为null是因为它首先违背了使用Optional的整个目的.null任何具有返回类型的方法,OptionalInt因为它首先破坏了使用Optional的整个目的.等等..
此外,一些人居然不鼓励使用原始选配的,只是因为他们缺乏map,flatMap和filter方法.
从本质上讲,没有规则总是使用Optionals或者反向,而是选择最适合您需求的API.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |