• JavaSE:Java8新特性


    1.  基本概念

          java.util.Optional类:可以理解为一个简单的容器,其值可能是null或者不是null,代表一个值存在或不存在

          该类的引入能很好地解决空指针异常,不用显式进行空值检测

    2.  常用方法

    static Optional ofNullable (T value) 根据参数指定数值,来得到Optional类型的对象
    Optional map (Function<? super T, ? extends U> mapper) 根据参数制定规则的结果,来得到Optional类型的对象
    T orElse (T other) 若该值存在就返回,否则返回other的数值

    3.  案例题目

          判断字符串是否为空,若不为空:打印字符串的个数; 否则:打印0

     1       class OptionalTest {
     2 
     3         main () {
     4 
     5           // 1. 处理null (不使用Optional类)
     6 
     7           String str1 = null;
     8 
     9           if ( null ! = str1 ) {
    10 
    11             print("字符串的长度是:"  + str1.length() );
    12 
    13           }  else {
    14 
    15             print ("字符串为空,因此长度为0!");
    16 
    17           }
    18 
    19 
    20 
    21           // 2. 处理null (使用Optional类)
    22           //  <1> 将数据str1 装到Optional 对象代表的容器中
    23           Optional<String> optional = Optional.ofNullable(str1);
    24 
    25 
    26           //  <2> 建立映射关系 (使用字符串的长度,与字符串建立映射关系)
    27           /*
    28             Optional<Integer> integer = optional.map(new Function<String,Integer> () {
    29 
    30               @Override
    31               public Integer apply (String s) {
    32 
    33                 return s.length();
    34               }
    35             });
    36           */
    37           // Optional<Integer> integer = optional.map( s -> s.length() );
    38           Optional<Integer> integer = optional.map(String::length);
    39 
    40 
    41           //  <3> 若字符串不为null,打印字符串的数值;   若字符串为null,则打印0
    42           println("integer = " + integer);  // Optional.empty
    43           println(integer.orElse(0));    // 0        
    44 
    45         }
    46 
    47       }
  • 相关阅读:
    MYSQL性能优化的最佳20+条经验
    MySQL性能分析工具之PROFILE
    理解事务的4种隔离级别
    二进制中1的个数
    滑动窗口最大值
    字符流中第一个不重复字符
    字符串转化为整数
    java字符,字符串,数字之间的转换
    java中数组输出的方式
    java基础知识(1)
  • 原文地址:https://www.cnblogs.com/JasperZhao/p/14949899.html
Copyright © 2020-2023  润新知