国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

在父類中反射獲取泛型類型

2019-11-14 22:34:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
在父類中反射獲取泛型類型

  使用Struts2時(shí)做CRUD時(shí),每個(gè)action都需要寫相同重復(fù)的代碼,于是就想著將這些個(gè)代碼放到一個(gè)父類中,子類直接使用父類中的方法。

  但是由于保存的時(shí)候需要傳遞一個(gè)具體的實(shí)體,而每個(gè)action功能不一樣,傳遞的實(shí)體也不一樣,于是就想到了反射。

  子類:

public class UserAction extends BaseAction<User> {}

  父類

public abstract class BaseAction<T> extends ActionSupport implements RequestAware, ModelDriven<T> {PRotected Map<String, Object> request;    protected Long id;    private Class<T> clazz = null;    public BaseAction() {        // TODO Auto-generated constructor stub        ParameterizedType pt = (ParameterizedType) this.getClass()                .getGenericSuperclass(); //獲取泛型類型數(shù)組        this.clazz = (Class<T>) pt.getActualTypeArguments()[0]; //獲取泛型類型    }    protected T model;    @Override    public T getModel() { //通過(guò)傳入不同的泛型類型,獲取具體的實(shí)例        try {            model = clazz.newInstance();        } catch (Exception e) {            throw new RuntimeException(e);        }        if (id != null) {            if (model instanceof Department) {                model = (T) departmentService.getById(id);            } else if (model instanceof Role) {                model = (T) roleService.getById(id);            } else if (model instanceof User) {                model = (T) userService.getById(id);            } else if (model instanceof Privilege) {                model = (T) privilegeService.getById(id);            }        }        return model;    }    @Override    public void setRequest(Map<String, Object> arg0) {        request = arg0;    }    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    @Resource    protected IDepartmentService departmentService;    @Resource    protected IRoleService roleService;    @Resource    protected IUserService userService;    @Resource    protected iprivilegeService privilegeService;}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 交城县| 宣恩县| 拉萨市| 房产| 左贡县| 临颍县| 务川| 周宁县| 维西| 金乡县| 富蕴县| 武强县| 玉田县| 四子王旗| 上饶县| 宜昌市| 渝中区| 大邑县| 江西省| 永胜县| 明光市| 金昌市| 昌图县| 罗江县| 遵义县| 北宁市| 双流县| 鲁山县| 揭东县| 凭祥市| 麟游县| 巴楚县| 新兴县| 青浦区| 普陀区| 江城| 东台市| 上杭县| 乌兰浩特市| 光山县| 普定县|