Java工具类返回对象的封装,泛型类,泛型方法,开发必不可少
本头条号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会不断更新,欢迎码友关注点赞收藏转发!
关注多的话,后面会录制一些视频教程,图文和视频结合,比如:图书介绍网站系统、抢购系统、大数据中台系统等。技术才是程序猿的最爱,码友们冲啊
正文
java的泛型非常重要,希望码友们多百度看多些泛型的相关文章。在各种框架中泛型的使用非常广泛和使用频率都非常高,在整个架构中起到非常重要的作用。下面直接来几个例子。
No.1
请看下我封装的返回对象,主要是为了整个项目的返回对象外层包装统一 import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; @ApiModel("响应报文体的包装") public class MyResponseEntity implements Serializable { private static final long serialVersionUID = 1L; public static final int SUCCESS = 0; public static final int FAILURE = -1; @ApiModelProperty(required = true, value = "操作结果,成功0、失败-1") private int code; @ApiModelProperty(required = false, value = "当失败时返回的信息") private String msg; @ApiModelProperty(required = false, value = "响应的业务数据") private T data; public int getCode() { return code; } public void setCode(int code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public T getData() { return data; } public void setData(T data) { this.data = data; } public static MyResponseEntity success() { MyResponseEntity entity = new MyResponseEntity<>(); entity.setCode(SUCCESS); return entity; } public static MyResponseEntity success(T data) { MyResponseEntity entity = success(); entity.setData(data); return entity; } public static MyResponseEntity error(String message) { MyResponseEntity entity = new MyResponseEntity<>(); entity.setCode(FAILURE); entity.setMsg(message); return entity; } }
使用样例 System.out.println(JacksonMapper.toJsonString(MyResponseEntity.success())); System.out.println(JacksonMapper.toJsonString(MyResponseEntity.error("发生错误"))); System.out.println(JacksonMapper.toJsonString(MyResponseEntity.success(new Person("李四", 12, true, new Date())))); // {"code":20000,"msg":"","data":""} // {"code":-1,"msg":"发生错误","data":""} // {"code":20000,"msg":"","data":{"name":"李四","age":12,"sex":true,"birthday":"2019-09-05"}}
No.2
泛型方法 public class Test { public static void main(String[] args) { System.out.println(Test.str2list("a","b","d")); // [a, b, d] System.out.println(Test.str2list(1,3,1,4)); // [1, 3, 1, 4] } public static List str2list(E... args){ List list = new ArrayList<>(); for (int i = 0; i < args.length; i++) { list.add(args[i]); } return list; } }
No.3 public class Test { public static void main(String[] args) { List list = new ArrayList<>(); Child child1 = new Child(); child1.setName("zhangsan"); child1.setAge(13); list.add(child1); Child child2 = new Child(); child2.setName("李四"); child2.setAge(20); list.add(child2); print(list); // Child(age=13) // Child(age=20) /* List list2 = new ArrayList<>(); print(list2); // list2是放不进print方法的,因为参数限制了必须为Parent类或者Parent的子 */ } public static void print(List<? extends Parent> childs) { childs.forEach(child -> System.out.println(child.getName())); } }
如果把<? extends Parent>换成<? super Parent>呢?
这两种写法就是泛型的限定,限定类型的上限或下限:
? extends E 接收E类型或者E的子类型。
? super E 接收E类型或者E的父类型
好了,这个泛型的内容实在太多了,而且项目中用得非常多,一些工具类或者通用类基本都是泛型封装起来的,这里也只是介绍简单的内容,泛型的复杂使用也不是那么容易理解和说明的,有些框架中一个类有5、6个泛型参数,伙伴们想更加深入的了解泛型就自己百度下吧,相信度娘解释的比我清楚。(づ 3 )づ
出去拍鸟,让红脚隼给袭击了近些天在市区边上的黑龙江畔发现了一个红脚隼的巢穴,里面的三只小红脚隼已经长得挺大了,这时候它们的食量也很大,两只亲鸟不停地捕食喂雏鸟,一趟趟的往返很忙碌。由于巢穴在几十米远的树上,
iOS14beta6体验分享,空间音频开启,续航趋于稳定!iOS14beta6体验分享今天凌晨苹果向开发者推送了iOS14beta6,本次更新最大亮点莫过于是加入空间音频和新的公交卡。同时修复了一些bug。这个更新包大小为400多MB,版
iOS14beta5来了,看看续航发热网络延迟到底如何iOS14beta5体验分享今天凌晨苹果向开发者者推送了iOS14的第五个开发者预览版。本次更新应该是游戏党最开心的,毕竟王者荣耀在更新到这个版本之后终于不闪退了。本次更新包大小不
目击俄罗斯远东城市进行的卫国战争胜利日纪念活动今年的5月9日,是俄罗斯卫国战争胜利76周年纪念日。普京在莫斯科红场举行阅兵式来纪念当年来之不易的胜利。而在遥远的俄罗斯远东城市布拉戈维申斯克也举办了庆祝活动。由于活动的主会场就设
过大年,拍小鸟一晃,这正月十五过完了,春节也算结束了。半个月来,每天就是玩手机上头条看电视喝小酒拍拍片,这一天过得还挺充实。过年期间,有一件事情一直坚持,就是到王肃街边的黑龙江公园里找小鸟。这不
在坝上草原看到马群,说容易也不容易可能有的朋友比较奇怪,在坝上草原看马群怎么还容易不容易的?草原上有马应该是草原上的常态吧。是啊,平时在草原看马实属平常,但听说坝上今年开始禁牧了,所有牲畜都要圈养。所以,在坝上看到
除夕夜,逛大街春节,是中国最重要的节日,而除夕,就是这个节日的重中之重。很早以来,这里过春节都是吃两顿饭的,大多数人家在下午三点左右吃年夜饭。而过年过的就是个人气,人多才有过年的气氛,才显得热闹
华为P50pro拍照体验说说长焦从去年下半年开始,就计划今年换手机,目标是华为P50系列。众多原因,本应春天就发布的P50手机直到7月末才姗姗来迟的发布。正式开售的第二天,在当地的华为专营店购回了P50pro。购
青春期遇上早恋,爱如何走下去爱是个动词姐姐的孩子,男孩,帅气,安静,初三的时候,恋爱了。是从班主任那知道的消息,女孩的家长很是生气,姐姐倒是很平静,因为她知道,除了疏导,自己也没有更好的方法,其实男孩很单纯的
自己的亲哥哥向你借钱炒股票,你该怎么拒绝?这是我的朋友跟我讲的,真真正正的发生在他身上的事情。我朋友是家里的老三,他有两个哥哥,二哥是喜欢炒股的,有一天,二哥来到他家,跟他讲老三,我看上一只股票,这支股票一定能涨,可是我手
华为P50pro拍照体验,说说广角华为P50pro手机入手二十多天了,时间不算长,但我已用它拍摄了超过4千张照片,使用过程中也发现了手机存在的不少问题,曾一度后悔买了这一款并不成熟的手机。但它的一个功能却让我特别喜