打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
java5如何得到泛型的类型参数
9loong
>《Java》
2008.08.20
关注
http://signingoff.javaeye.com/blog/223782
java5如何得到泛型的类型参数
直接上代码:
父类:
Java代码
import
java.lang.reflect.ParameterizedType;
/**
* 要得到T.class,必须要有一个子类
*
*
* @param <T>
* @param <String>
*/
public
class
GenericTest<T,String> {
Class<T> entityClass;
/**
* 得到泛型参数的类型
*
*/
public
GenericTest() {
ParameterizedType type = (ParameterizedType)
this
.getClass()
.getGenericSuperclass();
entityClass = (Class<T>) type.getActualTypeArguments()[
1
];
System.out.println(
"type=="
+type);
System.out.println(
"entityClass=="
+entityClass);
System.out.println(
"getOwnerType=="
+type.getOwnerType());
System.out.println(
"getRawType=="
+type.getRawType());
}
protected
String getV() {
return
null
;
}
}
子类:
Java代码
/**
* T.class是不存在的,所以的不到<br>
* 但是在父类中可以得到<Long, String>的具体类型。
*/
public
class
GenericTestChild<T>
extends
GenericTest<Long, String> {
Class<T> clazz;
public
GenericTestChild() {
// ---T.class是不存在的,所以下面的代码会有错误
/**
* ParameterizedType type = (ParameterizedType) this.getClass()
* .getGenericSuperclass();
*
* clazz = (Class<T>) type.getActualTypeArguments()[0];
* System.out.println("type==" + type);
* System.out.println("entityClass==" + entityClass);
* System.out.println("getOwnerType==" + type.getOwnerType());
* System.out.println("getRawType==" + type.getRawType());
*/
}
public
static
void
main(String args[]) {
GenericTestChild<Long> gt =
new
GenericTestChild<Long>();
}
}
( # )
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
古月白狐 残空望月 万杯不醉 千月星痕 Java泛型的运用
关于Java如何读取泛型类型参数
泛型40-43
Classworking 工具箱: 反射泛型
JAVA反射总结
java 泛型 深入
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×