ParameterizedType的作用
2016-10-28 14:04
218 查看
public interface ParameterizedType extends
Type
subParam.java
[java]
view plain
copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
package com.example.test;
public class subParam extends param<myclass, myinvoke> {
public static void main(String[] args) throws Exception{
subParam s = new subParam();
}
}
param.java
[java]
view plain
copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/9e12f1d3e499fc949c886e7c9e0484f9)
package com.example.test;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class param<T1, T2> {
class A {}
class B extends A {}
private Class<T1> entityClass;
protected param (){
Type type = getClass().getGenericSuperclass();
System.out.println("getClass()==" + getClass());
System.out.println("type = " + type);
Type trueType = ((ParameterizedType)type).getActualTypeArguments()[0];
System.out.println("trueType1 = " + trueType);
trueType = ((ParameterizedType)type).getActualTypeArguments()[1];
System.out.println("trueType2 = " + trueType);
this.entityClass = (Class<T1>)trueType;
B t = new B();
type = t.getClass().getGenericSuperclass();
System.out.println("B is A's super class :" + ((ParameterizedType)type).getActualTypeArguments().length);
}
}
===================== output =======================
getClass()==class com.example.test.subParam
type = com.example.test.param<com.example.test.myclass, com.example.test.myinvoke>
trueType1 = class com.example.test.myclass
trueType2 = class com.example.test.myinvoke
B is A's super class :0
总结
((ParameterizedType)type).getActualTypeArguments()
是用来的到类的模板参数的类型的? 入T1, T2 etc...
返回表示此类型实际类型参数的 Type 对象的数组。
Type
subParam.java
[java]
view plain
copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
package com.example.test;
public class subParam extends param<myclass, myinvoke> {
public static void main(String[] args) throws Exception{
subParam s = new subParam();
}
}
param.java
[java]
view plain
copy
![](https://oscdn.geek-share.com/Uploads/Images/Content/201611/a7c8e286f463007e2a900848b93dd72c.png)
package com.example.test;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class param<T1, T2> {
class A {}
class B extends A {}
private Class<T1> entityClass;
protected param (){
Type type = getClass().getGenericSuperclass();
System.out.println("getClass()==" + getClass());
System.out.println("type = " + type);
Type trueType = ((ParameterizedType)type).getActualTypeArguments()[0];
System.out.println("trueType1 = " + trueType);
trueType = ((ParameterizedType)type).getActualTypeArguments()[1];
System.out.println("trueType2 = " + trueType);
this.entityClass = (Class<T1>)trueType;
B t = new B();
type = t.getClass().getGenericSuperclass();
System.out.println("B is A's super class :" + ((ParameterizedType)type).getActualTypeArguments().length);
}
}
===================== output =======================
getClass()==class com.example.test.subParam
type = com.example.test.param<com.example.test.myclass, com.example.test.myinvoke>
trueType1 = class com.example.test.myclass
trueType2 = class com.example.test.myinvoke
B is A's super class :0
总结
((ParameterizedType)type).getActualTypeArguments()
是用来的到类的模板参数的类型的? 入T1, T2 etc...
返回表示此类型实际类型参数的 Type 对象的数组。
相关文章推荐
- mybatis中jdbcType的作用和是否必须
- response.setContentType()的作用及参数
- c# typeof 与 GetType 作用与区别
- Hibernate的cascade属性 特别是 cascadeType.all的 作用
- “References to generic type List should be parameterized”
- MyBatis的jdbcType的作用
- Tomcat启动报Error listenerStart错误 | "beans" 必须匹配 DOCTYPE 根 "null" | java.lang.reflect.MalformedParameterizedTypeException
- eclipse中如何去除警告:Class is a raw type. References to generic type Class<T> should be parameterized
- EditText中android:inputType属性的作用
- CheckDeviceType的作用
- response.setContentType()的作用及参数
- java.lang.reflect.MalformedParameterizedTypeException异常解决
- Enctype=multipart/form-data 的作用
- response.setContentType()的作用及参数
- response.setContentType()的作用及参数
- MyBatis的jdbcType的作用
- response.setContentType()的作用及参数
- Error creating bean with name 'beanName' 提示异常信息:java.lang.reflect.MalformedParameterizedTypeExcept
- response.setContentType()的作用及MIME参数详解
- 使用模型的好处 && instancetype的作用