springboot_guava整合和guava中的optional类详解 冷不防 2021-12-12 10:27 300阅读 0赞 一:guava的优势 Guava 是java api的增强与扩展,提供复杂的java 数据结构,使你的代码更简短精炼,具有良好的可读性。 二:环境的搭建 在pom文件中引入依赖 > <dependency> > <groupId>com.google.guava</groupId> > <artifactId>guava</artifactId> > <version>28.0-jre</version> > </dependency> 三:Optional类的使用 Optional用于包含非空对象的不可变对象。 Optional对象,用于不存在值表示null。这个类有各种实用的方法,以方便代码来处理为可用或不可用,而不是检查null值。 ## 类方法 ## <table> <tbody> <tr> <th>S.N.</th> <th>方法及说明</th> </tr> <tr> <td>1</td> <td><strong>static <T> Optional<T> absent()</strong><br> 返回没有包含的参考Optional的实例。</td> </tr> <tr> <td>2</td> <td><strong>abstract Set<T> asSet()</strong><br> 返回一个不可变的单集的唯一元素所包含的实例(如果存在);否则为一个空的不可变的集合。</td> </tr> <tr> <td>3</td> <td><strong>abstract boolean equals(Object object)</strong><br> 返回true如果对象是一个Optional实例,无论是包含引用彼此相等或两者都不存在。</td> </tr> <tr> <td>4</td> <td><strong>static <T> Optional<T> fromNullable(T nullableReference)</strong><br> 如果nullableReference非空,返回一个包含引用Optional实例;否则返回absent()。</td> </tr> <tr> <td>5</td> <td><strong>abstract T get()</strong><br> 返回所包含的实例,它必须存在。</td> </tr> <tr> <td>6</td> <td><strong>abstract int hashCode()</strong><br> 返回此实例的哈希码。</td> </tr> <tr> <td>7</td> <td><strong>abstract boolean isPresent()</strong><br> 返回true,如果这支架包含一个(非空)的实例。</td> </tr> <tr> <td>8</td> <td><strong>static <T> Optional<T> of(T reference)</strong><br> 返回包含给定的非空引用Optional实例。</td> </tr> <tr> <td>9</td> <td><strong>abstract Optional<T> or(Optional<? extends T> secondChoice)</strong><br> 返回此Optional,如果它有一个值存在; 否则返回secondChoice。</td> </tr> <tr> <td>10</td> <td><strong>abstract T or(Supplier<? extends T> supplier)</strong><br> 返回所包含的实例(如果存在); 否则supplier.get()。</td> </tr> <tr> <td>11</td> <td><strong>abstract T or(T defaultValue)</strong><br> 返回所包含的实例(如果存在);否则为默认值。</td> </tr> <tr> <td>12</td> <td><strong>abstract T orNull()</strong><br> 返回所包含的实例(如果存在);否则返回null。</td> </tr> <tr> <td>13</td> <td><strong>static <T> Iterable<T> presentInstances(Iterable<? extends Optional<? extends T>> optionals)</strong><br> 从提供的optionals返回每个实例的存在的值,从而跳过absent()。</td> </tr> <tr> <td>14</td> <td><strong>abstract String toString()</strong><br> 返回此实例的字符串表示。</td> </tr> <tr> <td>15</td> <td><strong>abstract <V> Optional<V> transform(Function<? super T,V> function)</strong><br> 如果实例存在,则它被转换给定的功能;否则absent()被返回。</td> </tr> </tbody> </table> > package com.github.springbootguava.example; > > import com.google.common.base.Optional; > > /\*\* > \* 测试guava功能代码 > \* > \* @author lizhangyu > \* @Date 2019-07-11 > \*/ > public class Test1 \{ > > public static void main(String\[\] args) \{ > Test1 test = new Test1(); > Integer value1 = null; > Integer value2 = new Integer(10); > //Optional.fromNullable - allows passed parameter to be null. > Optional<Integer> a = Optional.fromNullable(value1); > //Optional.of - throws NullPointerException if passed parameter is null > Optional<Integer> b = Optional.of(value2); > > System.out.println(test.sum(a,b)); > \} > > public Integer sum(Optional<Integer> a, Optional<Integer> b)\{ > //Optional.isPresent - checks the value is present or not > System.out.println("First parameter is present: " + a.isPresent()); > > System.out.println("Second parameter is present: " + b.isPresent()); > > //Optional.or - returns the value if present otherwise returns > //the default value passed. > Integer value1 = a.or(new Integer(0)); > > //Optional.get - gets the value, value should be present > Integer value2 = b.get(); > > return value1 + value2; > \} > > \} 输出结果: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDY5MDU1_size_16_color_FFFFFF_t_70][] # # [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3NDY5MDU1_size_16_color_FFFFFF_t_70]: /images/20211211/21afe10df6fa4ae6aa618a0596c6e2e4.png
相关 理解Java中的Optional类 在Java中,`Optional`是一个接口,它提供了一种表示“值存在但可能为null”这样情景的方法。 `Optional`的主要用途是: 1. 保证代码的健壮性,避免因 ╰+攻爆jí腚メ/ 2024年10月13日 06:42/ 0 赞/ 29 阅读
相关 详解Java中的Optional类,以及常见错误和解决方案 `Optional`是Java 8引入的一个新容器工具类,用于表示可能为null的值。 基本使用: 1. 创建空对象:`Optional.empty()` 2. 创建非空对 叁歲伎倆/ 2024年09月18日 08:12/ 0 赞/ 45 阅读
相关 详解Java中Optional类的使用场景和避免误区 Optional是Java 8引入的一个工具类,主要用于表示可能为null的结果。以下是其在编程中的几个主要使用场景以及避免的误区: 1. **方法返回值**: - 代 古城微笑少年丶/ 2024年09月10日 17:42/ 0 赞/ 56 阅读
相关 Java8中自带的Optional类详解 使用[Java8][]的新特性 Optional 代替 if - else 解决空指针问题 静态构造方法 JDK提供三个静态方法来构造一个\`Optional\` 男娘i/ 2023年09月26日 17:58/ 0 赞/ 115 阅读
相关 Google Guava学习 -Guava Range类 1.功能:数据范围处理 2.代码: package com.example.google.guava.demo.clazz; import co 短命女/ 2022年11月09日 14:10/ 0 赞/ 250 阅读
相关 Guava Optional使用介绍 Using and avoid null > “Null sucks.” \-\[Doug Lea\] > > “I call it my billion-dollar 傷城~/ 2022年05月10日 04:54/ 0 赞/ 178 阅读
相关 Java8 Optional类详解 > 在Java开发中,我们经验要判断对象是否为空,如果可空的对象不判断那么就可能抛出NullPointerException,为了减少这样的null值判断,java官方借鉴go Bertha 。/ 2022年02月05日 08:13/ 0 赞/ 259 阅读
相关 springboot_guava整合和guava中的optional类详解 一:guava的优势 Guava 是java api的增强与扩展,提供复杂的java 数据结构,使你的代码更简短精炼,具有良好的可读性。 二:环境的搭建 在pom文件中引 冷不防/ 2021年12月12日 10:27/ 0 赞/ 301 阅读
相关 java8中的Optional详解 也是在代码中碰到了这个类,下面就来学习一下。 Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException)。 本质上,这是一个包含 深藏阁楼爱情的钟/ 2021年10月18日 18:16/ 0 赞/ 265 阅读
还没有评论,来说两句吧...