getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type
然后将其转换ParameterizedType。。
getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。
[0]就是这个数组中第一个了。。
简而言之就是获得超类的泛型参数的实际类型。。
比如
超类
public abstract class AbstractDao<T> {
protected Session session;
private Class<T> clazz;
public AbstractDao(Session session) {
this.session = session;
this.clazz = (Class<T>) ((ParameterizedType) getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
}
public void save(T obj) {
session.saveOrUpdate(obj);
}
******
子类
public class SimDAO extends AbstractDao<Sim> {
public Session session;
public SimDAO(Session session) {
super(session);
}
}
测试类
public class OracleTest {
public static void main(String[] args) throws Exception {
SimDAO dao= new SimDAO ();
dao.save(new Sim("simName"));
}
}
这样在你new OptionManager();以后
超类里的entityClass就是子类那里的public class OptionManager extends GenericDAO<MSGC_OPTION> 里面的MSGC_OPTION所对应的class对象了..
分享到:
相关推荐
BookUtils.getInstance(boolean isTitle, boolean isSubTitle, int start, int end, int rowStart).initBook().bookOutport(Class<T> clazz, List<T> beans).write(String filerPath); Class<T> clazz:该类需要对...
<Dataset type="Form" id="datasetForm"> <MasterLink/> <Fields> <Field name="EMPLOYEE_ID" label="员工编号" dataType=""> <Properties/> </Field> <Field name="DEPT_ID" label="部门" dataType=""> ...
export excel: 1-step:use @ExcelField(lableName="sex") on POJO's field 2-setp: use ExcelUtil's static method export(Class<?> clazz,List<?...> clazz,Map<String,ExcelConvert> convert,InputStream in)
public static<T> List<T> parseXml(String xmlStr,String startStr,String endStr,Class clazz){ List<T> reList = new ArrayList<T>(); if(xmlStr==null||"".equals(xmlStr)){ reList = null; }else{ ...
java动态代理+自定义注解,实现改变目标方法行为(不入侵方法本身),支持...}需要手动配置下依赖: <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version> </dependency>
>[] inters=clazz.getInterfaces(); for (int i = 0; i < inters.length; i++) { System.out.println("实现的接口 :"+inters[i].getName()); } Class<?> sup=clazz.getSuperclass(); System.out....
List<Map<String, Object>> list = join(condition, orders, classLink); if(list == null) { return null; } List<R> ret = new ArrayList<R>(); for (int i = 0; i < list.size(); i++) { ret.add...
Class<T> clazz = (Class<T>) model.getClass(); //获取所有的bean中所有的成员变量 Field[] fields = clazz.getDeclaredFields(); for(int j=0;j<fields.length;j++){ //获取所有的bean中变量...
Document doc = sb.build(this.getClass().getClassLoader() .getResourceAsStream("beans.xml")); Element root = doc.getRootElement();// 获取根元素 List<?> list = root.getChildren("bean");// 获取...
Document document = sb.build(this.getClass().getClassLoader().getResourceAsStream(fileName)); Element root = document.getRootElement(); List list = XPath.selectNodes(root, "/beans/bean"); for...
java.lang.reflect.Method method = clazz.getMethod("close", null); method.invoke(resource, null); } catch (Exception e) { // e.printStackTrace(); } } /** * 执行 SELECT 等 SQL 语句并返回结果集. ...
将 Guice 与 JCL 结合使用的示例 这是一个示例项目,用于演示如何通过 (JarClassLoader...Class< SomeInterface> clazz = ( Class< SomeInterface> )jcl . loadClass( " SomeImpl " ); Injector injector = Guice . cre
HttpRequest.reqquest(int,String,Parse<T>,Class<T>){....}; >原生string文本请求: HttpRequest.getString(String,AqsString){...} >单张图片请求: HttpRequest.setImage(ImageView,String,int,int){...} >多...
解决mongo数据插入时 报错问题 mogodb插入数据时报错Can't find a codec for class java.math.BigDecimal
public Class<T> getDataClass() { return this.clazz; } /**成功*/ public abstract void onSuccess(T data); /**失败*/ public abstract void onFailure(int errorCode, String errorString);
//获得当前类型的带有泛型类型的父类... ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass(); //获得运行期的泛型类型 clazz = (Class) ptClass.getActualTypeArguments()[0];
为了使这成为可能,EnoFJS 实现了一个 ClassFactory,处理范围和继承的所有麻烦。 var Dog = clazz(function Dog(name){ this.extend = 'Animal'; this.private = { name: null }; this.protected = { ...
本版主要修改的内容: 1.修改bug,实体类的属性定义为...public BaseDaoImpl(SQLiteOpenHelper dbHelper, Class<T> clazz) 注:使用混淆时最好在proguard.cfg文件添加设置:-keepattributes *Annotation* 6.其他一些bug.
userDao = (UserDao) clazz.newInstance(); } catch (Throwable e) { throw new ExceptionInInitializerError(e); } } public static DaoFactory getInstance() { return instance; } public ...
Constructor constructor = clazz.getConstructor(Class 参数字节码)根据参数类型获取public修饰的指定的的构造方法 Constructor constructor = clazz.getDeclearConstructor(Class 参数字节码) 获取任意...