java 反射 构造函数 参数_反射获取带参数的构造方法
时间: 2023-11-28 21:47:39 浏览: 43
反射获取带参数的构造方法可以通过以下步骤实现:
1. 获取指定类的 Class 对象。
```java
Class<?> clazz = MyClass.class;
```
2. 获取指定参数列表的构造方法。
```java
Constructor<?> constructor = clazz.getConstructor(paramType1.class, paramType2.class, ...);
```
其中,`paramType1.class`、`paramType2.class` 是构造方法的参数类型,需要根据实际情况进行替换。
3. 通过构造方法创建对象。
```java
Object obj = constructor.newInstance(param1, param2, ...);
```
其中,`param1`、`param2` 是构造方法的实际参数,需要根据实际情况进行替换。
完整代码示例:
```java
class MyClass {
private int num;
private String str;
public MyClass(int num, String str) {
this.num = num;
this.str = str;
}
public void print() {
System.out.println("num: " + num + ", str: " + str);
}
}
public class Main {
public static void main(String[] args) throws Exception {
// 获取带参数的构造方法
Constructor<?> constructor = MyClass.class.getConstructor(int.class, String.class);
// 创建对象
Object obj = constructor.newInstance(1, "hello");
// 调用方法
MyClass myClass = (MyClass) obj;
myClass.print();
}
}
```
输出结果:
```
num: 1, str: hello
```
相关推荐
![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_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)