码迷,mamicode.com
首页 > 其他好文 > 详细

泛型真实类型

时间:2017-05-18 13:27:02      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:throw   ext   class   imp   项目   super   from   port   generic   

把项目中的代码抽出父类,有时需要用泛型。如果此时涉及到hibernate等数据库操作,比如"select u from User u",那么User怎么怎么表示出来呢?以下是研究的代码:

父类:

import static org.junit.Assert.*;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import org.junit.Test;

public class Father<T> {

	public Father() {
		// TODO Auto-generated constructor stub
		System.out.println(this.getClass());//class mypss.children
		System.out.println(this.getClass().getSuperclass());//mypss.Father
		System.out.println(this.getClass().getGenericSuperclass());//mypss.Father<java.lang.Long> 带上了泛型
		ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass();
		Type[] actualTypes = parameterizedType.getActualTypeArguments();
		System.out.println(actualTypes[0]);//class java.lang.Long 真实的泛型类型,Long
		Class<T> actualType = (Class<T>) actualTypes[0];
		System.out.println(actualType);
	}
	
}

 子类:

package mypss;

import static org.junit.Assert.*;

import org.junit.Test;

public class children extends Father<Long> {

	@Test
	public void testde() throws Exception {
		System.out.println("子类");
	}
}

 

泛型真实类型

标签:throw   ext   class   imp   项目   super   from   port   generic   

原文地址:http://www.cnblogs.com/yintingting/p/6872735.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!