zoukankan      html  css  js  c++  java
  • Java基础001 --- 结构化编程

    本随笔旨在分享一些结构化编程思想,如有不妥,望指正,共同学习共同进步!! 

       1、非空断言

            使用jdk自带的Objects类

            

            使用开源guava库

            

       2、非空赋值

             使用场景:构造器、java bean的setter方法中

             使用jdk自带的Objects类

             

             使用开源guava库

             

       3、guava的参数校验

             这里说一些guava参数校验功能,guava提供了优雅的参数校验方法

             

             

       4、Holder类的使用

            在输入校验方法中,我们通常希望返回校验结果true/false以及校验提示信息,但是java方法只支持返回单个参数,并且我们不希望修改输入数据

            因此,我们可以通过使用Holder类完成该功能;

            Holder类非常简单,只有一个泛型处理,以及一个属性value

            

           下面为使用方法:

            

       5、Optional类的使用

             Optional类由java1.8引入,主要为了简化非空判断,并且能够快速定位空指针异常

             (1) of

                       用来创建一个非空对象,传入的值不能为空,如果为空,抛空指针异常

                       

             (2)ofNullable

                       用来创建一个对象,输入可以为空;为空,则创建一个空对象。

             (3)get

                      如果创建的Optional中的值存在,返回该值,否则抛NoSuchElementException异常

                      

             (4)isPresent

                      如果创建的Optional中的值存在,返回true,否则返回false

             (5)ifPresent

                      如果创建的Optional中的值存在,则dosomething;   Optional.ofNullable(value).ifPresent(dosomething)

                      

             (6)filter

                      如果创建的Optional对象中的值满足filter中的过滤条件,返回包含该值的Optional对象,否则,返回空的Optional对象

                     

             (7)map

                      如果创建的Optional中的值存在,则执行map中的funcaiton函数接口

                      

             (8)flatMap

                      功能和map基本一致,区别是,如果map中的function返回值为Optional,flatMap不会返回双层Optional,但是map方法会返回双层Optional

             (9)orElse

                      如果创建的Optional中的值存在,返回该值,否则返回orElse提供的值

                      

             (10)orElseGet

                      如果创建的Optional中的值存在,返回该值,否则返回orElseGet提供的function返回的值

                      

             (11)orElseThrow

                      如果创建的Optional中的值存在,返回该值,否则抛出指定异常

                      

            

  • 相关阅读:
    ubuntu-18.04自动配置脚本
    Nodejs on windows 10
    终端接收FFMEPG推送的流出现音频卡顿问题
    FFMPEG 4.0 版本 支持PSI设置
    FFMPEG 支持https协议
    FFmpeg修改AC3编码的描述子
    FFMPEG 设置socket缓冲区
    将 h264 格式转换为YUV数据
    将 YUV 数据 编码为 h.264 格式
    将 PCM 数据编码为AAC格式
  • 原文地址:https://www.cnblogs.com/sniffs/p/11565098.html
Copyright © 2011-2022 走看看