public class Child extends Base<Child>{ }
http://www.2cto.com/kf/201208/150877.html
UserDao类: package com.mrlun.oa.test; public class UserDao extends BaseDaoImpl<Users>{ }
http://blog.sina.com.cn/s/blog_86e34ca8010132ly.html
1)
public class A<T> { private Class getActualTypeClass(Class entity) { ParameterizedType type = (ParameterizedType) entity.getGenericSuperclass(); Class entityClass = (Class) type.getActualTypeArguments()[0]; return entityClass; } Class clazz = getActualTypeClass(this.getClass()); //这里的clazz就是范型T的具体类型的class了 }
http://tieba.baidu.com/p/1870781710
2)
利用object,做强制转换
http://www.cnblogs.com/tekkaman/p/3920309.html
3)
http://outofmemory.cn/code-snippet/11387/java-create-generic-class-instance-with-newinstance-method
4)好
http://developer.51cto.com/art/201009/226966_1.htm
http://www.2cto.com/database/201404/296251.html
5)泛型和反射结合
/**通过反射机制查询单条记录 * @param sql * @param params * @param cls * @return * @throws Exception */ public <T> T findSimpleRefResult(String sql, List<Object> params, Class<T> cls )throws Exception{ T resultObject = null; int index = 1; pstmt = connection.prepareStatement(sql); if(params != null && !params.isEmpty()){ for(int i = 0; i<params.size(); i++){ pstmt.setObject(index++, params.get(i)); } } resultSet = pstmt.executeQuery(); ResultSetMetaData metaData = resultSet.getMetaData(); int cols_len = metaData.getColumnCount(); while(resultSet.next()){ //通过反射机制创建一个实例 resultObject = cls.newInstance(); for(int i = 0; i<cols_len; i++){ String cols_name = metaData.getColumnName(i+1); Object cols_value = resultSet.getObject(cols_name); if(cols_value == null){ cols_value = ""; } Field field = cls.getDeclaredField(cols_name); field.setAccessible(true); //打开javabean的访问权限 field.set(resultObject, cols_value); } } return resultObject; }
http://www.soso.io/article/67503.html
6)
http://www.oschina.net/code/snippet_1245103_33821
7)
Class<T>的作用就是指明泛型的具体类型,而Class<T>类型的变量c,可以用来创建泛型类的对象。
为什么要用变量c来创建对象呢?既然是泛型方法,就代表着我们不知道具体的类型是什么,也不知道构造方法如何,因此没有办法去new一个对象,但可以利用变量c的newInstance方法去创建对象,也就是利用反射创建对象。
http://www.cnblogs.com/iyangyuan/archive/2013/04/09/3011274.html
8)
http://blog.sina.com.cn/s/blog_86e34ca8010132ly.html