博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
泛型的应用
阅读量:5049 次
发布时间:2019-06-12

本文共 1123 字,大约阅读时间需要 3 分钟。

泛型是不能被实例化的。所以会存在类型转换异常。

private Class clazz;//clazz中存储了当前操作的类型    public BaseServiceImpl(){        System.out.println("this代表当前调用构造方法的对象"+this);        System.out.println("获取当前this对象的父类信息"+this.getClass().getSuperclass());        System.out.println("获取当前this对象的父类信息(包括泛型)"+this.getClass().getGenericSuperclass());        ParameterizedType type=(ParameterizedType)this.getClass().getGenericSuperclass();        clazz=(Class)type.getActualTypeArguments()[0];        }
@Override    public void delete(int id) {        String hql="DELETE "+clazz.getSimpleName()+" where id=id";        getSession().createQuery(hql).setInteger("id", id).executeUpdate();    }

ModelDriven拦截器:把返回的对象压入栈顶中

必须要实现getModel()方法。用到泛型。

protected T model;    @Override    public T getModel() {        ParameterizedType type=(ParameterizedType)this.getClass().getGenericSuperclass();        Class clazz=(Class)type.getActualTypeArguments()[0];        try {            model=(T)clazz.newInstance();        } catch (Exception e) {            throw new RuntimeException(e);        }        return model;    }

 

转载于:https://www.cnblogs.com/bulrush/p/5871712.html

你可能感兴趣的文章
linux调度器系列
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>
Android实现 ScrollView + ListView无滚动条滚动
查看>>
Swift 中的指针使用
查看>>
Swift - 使用闭包筛选过滤数据元素
查看>>
alue of type java.lang.String cannot be converted to JSONObject
查看>>
搜索引擎选择: Elasticsearch与Solr
查看>>
JAVA设计模式之简单工厂模式与工厂方法模式
查看>>
③面向对象程序设计——封装
查看>>
【19】AngularJS 应用
查看>>