java 泛型参数化类型 获取实例对象
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java 泛型参数化类型获取实例对象
在Java中,泛型参数化类型可以通过如下方式获取实例对象:
1. 使用new关键字实例化对象时,可以添加泛型参数化类型
来指定具体类型,例如:
```java
List<String> list = new ArrayList<>();
```
这里的`<>`表示泛型参数化类型,声明了一个`ArrayList`类
型的`list`,其中存储的元素类型是`String`。
2. 在方法的参数或返回值中使用泛型参数化类型,例如:
```java
public T getObject() {
// ...
}
public void setObject(T object) {
// ...
}
```
这里的`T`表示泛型参数化类型,可以在方法中使用它来声
明参数类型或返回值类型。
3. 通过反射获取泛型参数化类型的实例对象,例如:
```java
Class<T> clazz =
(Class<T>)((ParameterizedType)getClass().getGenericSuperclass() ).getActualTypeArguments()[0];
T object = clazz.newInstance();
```
这里使用了反射来获取当前类的泛型参数化类型,并通过
`newInstance()`方法创建该类型的实例对象。
需要注意的是,由于Java的类型擦除机制,在运行时无法直接获取泛型参数化类型的具体类型。
上述第3种方式是利用反射获取泛型参数化类型的实例对象的一种方法,但需要注意处理异常和边界情况。