首页 > 其他 > 详细

泛型真实类型

时间:2017-05-18 13:19:36      阅读:309      评论:0      收藏:0      [点我收藏+]

把项目中的代码抽出父类,有时需要用泛型。如果此时涉及到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("子类");
	}
}

 

泛型真实类型

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!