zoukankan      html  css  js  c++  java
  • guaua学习,工具专题

    Preconditions

    1,http://www.cnblogs.com/peida/p/Guava_Preconditions.html

     1 .checkArgument(boolean) :
      功能描述:检查boolean是否为真。 用作方法中检查参数
      失败时抛出的异常类型: IllegalArgumentException

      2.checkNotNull(T):     
      功能描述:检查value不为null, 直接返回value;
      失败时抛出的异常类型:NullPointerException

      3.checkState(boolean):
      功能描述:检查对象的一些状态,不依赖方法参数。 例如, Iterator可以用来next是否在remove之前被调用。
      失败时抛出的异常类型:IllegalStateException

      4.checkElementIndex(int index, int size):
      功能描述:检查index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。   
      失败时抛出的异常类型:IndexOutOfBoundsException


      5.checkPositionIndex(int index, int size):这个可以==size
      功能描述:检查位置index是否为在一个长度为size的list, string或array合法的范围。 index的范围区间是[0, size)(包含0不包含size)。无需直接传入list, string或array, 只需传入大小。返回index。
      失败时抛出的异常类型:IndexOutOfBoundsException

      6.checkPositionIndexes(int start, int end, int size):
      功能描述:检查[start, end)是一个长度为size的list, string或array合法的范围子集。伴随着错误信息。
      失败时抛出的异常类型:IndexOutOfBoundsException

      //不为空
            Preconditions.checkNotNull(content, "content is null");
            //字数要求,10<x<50
            try {
                Preconditions.checkArgument(content.trim().length() > NumberConst.RESPONSE_MIN
                        && content.trim().length() < NumberConst.RESPONSE_MAX, ResultConst.REQUEST_CONTENT);
            } catch (IllegalArgumentException e) {
                log.info("回复字数不符合要求");
                throw new BizException(ResultConst.ERROR_CODE, e.getMessage());
            }

     Lists.transform

    这个方法有坑,返回的list只保留了原来list和转换方法,所以说每次都只通过旧list计算出新list,不能再临时的对象上添加东西

    解决方案:拷贝它的引用

    List<ResumeResponseForm> resumeResponseFormList = new ArrayList<ResumeResponseForm>(resumeResponseFormListTemp);

    https://www.cnblogs.com/winkey4986/p/7498769.html

    https://blog.csdn.net/mnmlist/article/details/53870520

    Optional

    静态方法

     Optional.of(T):获得一个Optional对象,其内部包含了一个非null的T数据类型实例,若T=null,则立刻报错。
      Optional.absent():获得一个Optional对象,其内部包含了空值
      Optional.fromNullable(T):将一个T的实例转换为Optional对象,T的实例可以不为空,也可以为空[Optional.fromNullable(null),和Optional.absent()等价。

    2.实例方法:

      1>. boolean isPresent():如果Optional包含的T实例不为null,则返回true;若T实例为null,返回false
      2>. T get():返回Optional包含的T实例,该T实例必须不为空;否则,对包含null的Optional实例调用get()会抛出一个IllegalStateException异常
      3>. T or(T):若Optional实例中包含了传入的T的相同实例,返回Optional包含的该T实例,否则返回输入的T实例作为默认值
      4>. T orNull():返回Optional实例中包含的非空T实例,如果Optional中包含的是空值,返回null,逆操作是fromNullable()

            //初次访问就第一个未默认,选了的话就选了的为默认
    //        if (_resumeId == null) {
    //            _resumeId = resumeDtoList.get(0).getRes_id();
    //        }
            Optional<Long> resumeIdOptional = Optional.fromNullable(_resumeId);
            Long resumeId = resumeIdOptional.or(resumeDtoList.get(0).getRes_id());

    Strings

    // 问题: 1."UTF-8"必须在Java平台中被支持 2.人工敲入会有偏差
    // byte[] bytes = "foo".getBytes("UTF-8");
    // 解决: Charsets类提供了对Java平台支持字符集
    byte[] bytes = "foo".getBytes(Charsets.UTF_8);


    // 问题: 使用StringBuilder类连接字符串太繁琐, 代码其实都是重复的
    // 解决: Strings类封装了连接字符串的统一代码
    System.out.println("padEnd");
    String stringsTest = Strings.padEnd("foo", 6, 'o');
    System.out.println(stringsTest);

    // 在String作为参数时,将null转换成""防止空指针问题
    System.out.println("nullToEmpty");
    String nullToEmptyTest1 = Strings.nullToEmpty("123");
    String nullToEmptyTest2 = Strings.nullToEmpty(null);
    System.out.println(nullToEmptyTest1 + "--" + nullToEmptyTest2);

    // ""转null,是字符串的"null"
    System.out.println("emptyToNull");
    String emptyToNullTest1 = Strings.emptyToNull("123");
    String emptyToNullTest2 = Strings.emptyToNull("");
    System.out.println(emptyToNullTest1 + "--" + emptyToNullTest2);

  • 相关阅读:
    记一次对网站的SEO优化改造
    pc端页面添加响应式布局
    linux开启coredump
    vue中鼠标事件
    垂直居中的几种方法
    最准确的身份证号码正则验证
    将数组[NaN ,1,21,32,NaN,41,5]里面的NaN成员剔除(复用underscore.js的filter方法)
    项目中使用Mockjs模拟数据
    研究生学习与生活(2019)
    研究生学习与生活(九)
  • 原文地址:https://www.cnblogs.com/vhyc/p/8849558.html
Copyright © 2011-2022 走看看