//请导入自己的包
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.HashMap;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.data.domain.Page;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T> {
protected T model;
@Override
public T getModel() {
return model;
}
//通过构造实例化对象
public BaseAction() {
//this.getClass().getGenericSuperclass(); 获取子类.得到子类继承的父类;
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();
}
}
}
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.HashMap;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.data.domain.Page;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public abstract class BaseAction<T> extends ActionSupport implements ModelDriven<T> {
protected T model;
@Override
public T getModel() {
return model;
}
//通过构造实例化对象
public BaseAction() {
//this.getClass().getGenericSuperclass(); 获取子类.得到子类继承的父类;
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();
}
}
}