通过class对象获取实例对象
时间: 2023-09-03 11:07:39 浏览: 63
通过`Class`对象获取实例对象需要使用`newInstance`方法。这个方法会调用类的无参构造方法来创建一个新的实例对象。如果类没有提供无参构造方法,或者构造方法不可访问,那么调用`newInstance`方法会抛出`InstantiationException`异常。
下面是一个简单的例子,演示如何通过`Class`对象获取实例对象:
```java
public class MyClass {
private String message;
public MyClass() {
this.message = "Hello, world!";
}
public String getMessage() {
return message;
}
}
public class Main {
public static void main(String[] args) throws Exception {
Class<?> clazz = MyClass.class;
MyClass obj = (MyClass) clazz.newInstance();
System.out.println(obj.getMessage()); // Output: Hello, world!
}
}
```
在这个例子中,我们创建了一个`MyClass`类和一个`Main`类。`MyClass`类中有一个无参构造方法和一个`getMessage`方法,用于返回一个字符串。在`Main`类中,我们使用`MyClass.class`来获取`MyClass`类的`Class`对象,然后使用`newInstance`方法来创建一个新的`MyClass`实例对象。最终,我们调用`getMessage`方法来输出这个实例对象的消息。
相关推荐
![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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)