java8特性 optional 工具类-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 553804
  • 博文数量: 298
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3077
  • 用 户 组: 普通用户
  • 注册时间: 2019-06-17 10:57
文章分类

(298)

  • (298)
文章存档

(96)

(201)

(1)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: java

2021-07-28 10:29:38


点击(此处)折叠或打开

  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }


点击(此处)折叠或打开

  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }


点击(此处)折叠或打开

  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }


点击(此处)折叠或打开

  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }

 1. 关于java8工具类optional的一点使用心得
??对于java开发中遇到的npe(空指针问题),其实使用工具类optional处理效果一般,个人感觉最大的用处就是可以减少一定的if语句,减少一定的非空判断,千万不能将optional放在if内,会非常多此一举。

个人觉得最实用的例子:
??如果获取不到student的name属性(为空),那么将使用student的rename属性,即使rename、name为空,也不会出现空指针异常。

点击(此处)折叠或打开

  1. import lombok.data;
  2. import java.util.optional;

  3. public class qwe {
  4.     //java fhadmin.cn
  5.     public static void main(string[] args) {
  6.         student student = new student();
  7.         student.setrename("tom");
  8.         student student1 = new student();
  9.         student1.setname( optional.ofnullable(student.getname()).orelseget(student::getrename)); //
  10.         system.out.println(student1);
  11.     }
  12.     @data
  13.     static class student{
  14.         string name;
  15.         string rename;
  16.     }
  17. }
2. 工具类

点击(此处)折叠或打开

  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }


点击(此处)折叠或打开

  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }

点击(此处)折叠或打开


  1. package com.ven.utils;
  2.  
  3. import java.util.arraylist;
  4. import java.util.list;
  5. import java.util.optional;
  6. /**
  7.  * java 8 optional 工具类
  8.  * @author fhadmin
  9.  * @from fhadmin.cn
  10.  * @ version 1.0
  11.  */
  12. public class optionalutil {
  13.  
  14.     /**
  15.      * 判断输入的字符串是否为空
  16.      * @param str string
  17.      * @return
  18.      */
  19.     public static boolean isempty(string str){
  20.         return optional.ofnullable(str).ispresent();
  21.     }
  22.     
  23.     /**
  24.      * 判断输入的integer是否为空
  25.      * @param num integer
  26.      * @return
  27.      */
  28.     public static boolean isempty(integer num){
  29.         return optional.ofnullable(num).ispresent();
  30.     }
  31.     /**
  32.      * 判断输入的double是否为空
  33.      * @param dnum double
  34.      * @return
  35.      */
  36.     public static boolean isempty(double dnum){
  37.         return optional.ofnullable(dnum).ispresent();
  38.     }
  39.     /**
  40.      * 判断输入的object是否为空
  41.      * @param obj
  42.      * @return
  43.      */
  44.     public static boolean isempty(object obj){
  45.         return optional.ofnullable(obj).ispresent();
  46.         
  47.     }
  48.     
  49.     /**
  50.      * 判断输入的list是否为空,获取该对象
  51.      * @param obj
  52.      * @return
  53.      */
  54.     public static object get(object obj){
  55.         return optional.ofnullable(obj).ispresent()!=false?optional.ofnullable(obj).get():null;
  56.         
  57.     }
  58.     /**
  59.      * 测试
  60.      * @param args
  61.      */
  62.     @suppresswarnings("unchecked")
  63.     public static void main(string[] args) {
  64.         list<string> list = new arraylist<>();
  65.         list.add("a");
  66.         list.add("b");
  67.         list.add("c");
  68.         list<string> objlist = (list<string>) optionalutil.get(list);
  69.         objlist.foreach(item->{system.out.println(item);});
  70.         
  71.         string str = null;
  72.         system.out.println("当前对象:"optionalutil.get(str));
  73.         
  74.         
  75.     }
  76. }


阅读(5226) | 评论(0) | 转发(0) |
0

上一篇:

下一篇:

给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图