在父类中反射获取泛型类型
2015-01-14 15:42
316 查看
使用Struts2时做CRUD时,每个action都需要写相同重复的代码,于是就想着将这些个代码放到一个父类中,子类直接使用父类中的方法。
但是由于保存的时候需要传递一个具体的实体,而每个action功能不一样,传递的实体也不一样,于是就想到了反射。
子类:
父类
但是由于保存的时候需要传递一个具体的实体,而每个action功能不一样,传递的实体也不一样,于是就想到了反射。
子类:
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(); //获取泛型类型数组 this.clazz = (Class<T>) pt.getActualTypeArguments()[0]; //获取泛型类型 } protected T model; @Override public T getModel() { //通过传入不同的泛型类型,获取具体的实例 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; }
相关文章推荐
- 通过反射获取父类泛型类型
- Java反射通过class获取父类泛型类型
- java反射获得泛型参数getGenericSuperclass():获取到父类泛型的类型
- 使用反射获取当前new的对象的 带泛型的父类的 类型
- java 反射机制(通过getGenericSuperclass()方法获取到父类泛型的类型)
- java 反射机制 (获取父类泛型的类型)getGenericSuperclass
- java 反射机制 (获取父类泛型的类型)getGenericSuperclass
- java 通过反射获取泛型的类型
- 通过反射获取泛型的参数类型信息
- java中通过反射获取泛型的参数类型
- 黑马程序员——通过反射获取方法中泛型参数的指定类型
- java 通过反射获取泛型的类型
- java 通过反射获取泛型的类型
- java 通过反射获取泛型的类型
- 泛型约束通过反射获取相关值、属性名、属性类型
- java反射,获得Class是否为基本数据类型,是否其他类的父类。获得泛型。
- java 通过反射获取泛型的类型
- java基础-反射 --通过反射 获取泛型实际类型参数
- 通过反射获取变量泛型参数化的类型
- 黑马程序员--Java基础加强--14.利用反射操作泛型III【解析关于泛型类型的细节信息的获取方法】【Method与泛型相关的方法】【个人总结】