Class<?>转对象
时间: 2023-12-05 22:03:51 浏览: 28
在 Java 中,Class 对象是描述一个类的元数据。如果你想要将 Class 对象转换成对应的对象,可以使用 newInstance() 方法。这个方法会创建一个该类的实例对象,并返回给你。下面是一个示例代码:
```
Class<?> clazz = MyClass.class;
Object obj = clazz.newInstance();
```
其中,MyClass 是你想要创建实例的类名。这个代码会创建一个 MyClass 的实例对象并赋值给 obj 变量。需要注意的是,这个方法只适用于那些具有默认构造函数的类。如果你要创建的类没有默认构造函数,就需要使用其他的方式来创建实例对象。
相关问题
Class<?>和Class的区别
Class<?>和Class都是Java中的Class类,但是它们之间有一些区别。
Class<?>是一个通配符泛型,表示可以是任意的Java类。它可以用来描述一个未知的类型,并且可以在运行时获取这个类型的信息。
而Class则是Java中用于描述一个类的类,每个Java类都有一个对应的Class对象,可以通过这个对象获取该类的信息,比如它的名称、方法、字段等等。
因此,Class<?>是一个泛型,它表示任意类型的Class对象;而Class则是用于描述一个具体的Java类的类型。
如何 将 class<?> 转 TypeReference
将 class<?> 转成 TypeReference 可以使用 Jackson 提供的 TypeReference 类。具体代码如下:
```
TypeReference<?> typeRef = new TypeReference<>() {
@Override
public Type getType() {
return getClass();
}
};
ObjectMapper objectMapper = new ObjectMapper();
MyObject myObject = objectMapper.readValue(jsonString, typeRef);
```
这里的 MyObject 就是你要转换的对象类型,jsonString 是 JSON 字符串。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)