前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java 泛型类的定义和封装实例

java 泛型类的定义和封装实例

作者头像
爱明依
发布2019-03-12 15:25:55
1.8K0
发布2019-03-12 15:25:55
举报
文章被收录于专栏:爱明依爱明依

为了让一个java类 在不同的类型都能在程序中调用,我们常常会将此类定义为泛型类,重要特点是:类的作用是通用的,仅此我们需要传入的类型不一样。

一个具体的实例是,当我们采用treeTable 显示页面的数据时,后台需要进行数据的重新整合,此时针对好多类都会进行创建一个产生treeTable 数据的类。那么我们这时最好的案方法就是封装一个通用的类,进行调用即可,传入你要整合数据的类型和整合的数据即可。

代码如下:

public class TreeTableUtils<T extends DataEntity> {     protected T info;     public T getInfo() {         return info;     }     public void setInfo(T info) {         this.info = info;     }     private List<T> resultNodes = new ArrayList<T>();//树形结构排序之后list内容     private List<T> nodes; //传入list参数     public TreeTableUtils(List<T> nodes, T info) {//通过构造函数初始化         this.nodes = nodes;         this.info = info;     }     /**      * 构建树形结构list      *      * @return 返回树形结构List列表      */     public List<T> buildTree() {         for (T node : nodes) {             if (node.getParentId() == null || "".equals(node.getParentId())) {//通过循环一级节点 就可以通过递归获取二级以下节点                 resultNodes.add(node);//添加一级节点                 build(node);//递归获取二级、三级、。。。节点             }         }         return resultNodes;     }     /**      * 递归循环子节点      *      * @param node 当前节点      */     private void build(T node) {         List<T> children = getChildren(node);         if (!children.isEmpty()) {//如果存在子节点             for (T child : children) {//将子节点遍历加入返回值中                 resultNodes.add(child);                 build(child);             }         }     }     /**      * @param node      * @return 返回      */     private List<T> getChildren(T node) {         List<T> children = new ArrayList<T>();         String id = node.getId();         for (T child : nodes) {             if (id.equals(child.getParentId())) {//如果id等于父id                 children.add(child);//将该节点加入循环列表中             }         }         return children;     } }

其中涉及的知识点:递归和泛型

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年08月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档