gpt4 book ai didi

Java:没有默认构造函数的类的newInstance

转载 作者:IT老高 更新时间:2023-10-28 20:46:54 25 4
gpt4 key购买 nike

我正在尝试为学生的家庭作业构建一个自动测试框架(基于 jUnit,但这并不重要)。他们必须为某些类创建构造函数,并为它们添加一些方法。稍后,通过我提供的测试功能,他们会检查是否正常。

我想要做的是,通过反射,为我想要测试的某个类创建一个新实例。问题在于,有时没有默认构造函数。我不在乎,我想自己创建一个实例并初始化实例变量。有没有办法做到这一点?很抱歉,如果以前有人问过这个问题,但我找不到任何答案。

提前致谢。

最佳答案

调用 Class.getConstructor() 然后 Constructor.newInstance() 传入适当的参数。示例代码:

import java.lang.reflect.*;

public class Test {

public Test(int x) {
System.out.println("Constuctor called! x = " + x);
}

// Don't just declare "throws Exception" in real code!
public static void main(String[] args) throws Exception {
Class<Test> clazz = Test.class;
Constructor<Test> ctor = clazz.getConstructor(int.class);
Test instance = ctor.newInstance(5);
}
}

关于Java:没有默认构造函数的类的newInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3671649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com