如何抽取代码后,在父类实例化泛型的问题
来源:互联网 发布:js获取回调函数返回值 编辑:程序博客网 时间:2024/05/18 00:03
代码背景:在物流项目中,有大量的action类中需要使用模型驱动,所以会抽取公共部分代码,
但由于action类要实现ModelDriven<T>接口,抽取成BaseAction里面的泛型T如何在子类实例化的问题。
/** * 抽取Action的公共代码 ,简化开发 * * @author dijia478 * @version 1.0,2017-10-30 11:16 */public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T> { /** 模型驱动 */ protected T model; @Override public T getModel() { return model; } /** * 构造器 完成model实例化 */ public BaseAction() { // 构造子类Action对象 ,获取继承父类型的泛型 // AreaAction extends BaseAction<Area> // BaseAction<Area> Type genericSuperclass = this.getClass().getGenericSuperclass(); // 获取类型第一个泛型参数 ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass; Class<T> modelClass = (Class<T>) parameterizedType.getActualTypeArguments()[0]; try { model = modelClass.newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); System.out.println("模型构造失败..."); } }}这段代码是通过构造器来实例化泛型T的,子类要继承BaseAction,加载子类的时候,子类构造默认会调用supper();,所以会将泛型T实例化
阅读全文
0 0
- 如何抽取代码后,在父类实例化泛型的问题
- servlet代码的抽取
- Unix环境高级编程第三版中实例代码如何在自己的linux上运行的问题
- 在Windows下如何解决Cocos2d-x中实例代码TestCpp找不到lib库文件的问题
- 如何将solr响应后的namedList转换成json实例代码
- 如何抽取文件的缩略图
- 如何在 Bash 中抽取子字符串
- 如何在WeX5中使用自己的tomcat并在修改代码后自动同步
- 代码抽取
- 基本概念的澄清 1。抽象类与接口在设计时各有什么好处? 2。静态方法与实例方法的区别(论坛帖抽取)
- 代码示例演示如何创建 Socket 类的实例。
- Intellij和eclipse代码的抽取对比
- Android Studio抽取代码的方法
- 实现抽取java中的注释的代码
- 如何让yylex后的代码运行
- informatica 在抽取EXCEL中遇到问题及INFA售后给出的建议。
- informatica 在抽取EXCEL中遇到问题及INFA售后给出的建议
- 如何在css加载完毕后,再执行后续代码
- 人脸识别之遍历ORL人脸文件
- 欢迎使用CSDN-markdown编辑器
- HDOJ--2152Fruit!!母函数
- c++中的map
- JavaScript.Node对象属性
- 如何抽取代码后,在父类实例化泛型的问题
- java基础(个人版)
- 二维码
- DFS全排列
- 关于自动驾驶L1~L5的等级划分,这次认真聊一聊
- 神经网络算法
- Tp3.2和Tp5.0之间的区别
- 在Linux下使用Openswan配置IPSec VPN环境
- java数组反转Reverse