我有一个主要类,它执行在另一个类中编写的函数,让我们称之为"代码"类。现在我又创建了一个"代码"我想在那里调用函数。我不想在我的主类中创建多个对象,因为我在两个代码类中都有构造函数,并且创建多个对象将会影响我的测试。据我所知,我不能扩展多个班级。有没有其他解决方案让我在第二个代码类中调用函数而不创建该类的对象?
ReqOrderImpMain d = new ReqOrderImpMain();
//Request Order Import - First page function calling
d.page();
d.checkLoginAndProceed();
/*d.output();
d.correctORNumber();
d.createNewOrder();
d.checkOrder();
d.checkSend();
d.quantityCheck();
d.restMatWithQuantity();
d.submit();
d.quit();*/
//Request Order Import - Rest of the pages function calling ??.output(); ??.select();
}
d的功能。从第一个代码类调用。我希望能够调用??。function()。
答案 0 :(得分:0)
如果要在不创建该类实例的情况下调用类中的函数(方法),则需要创建静态方法。
public class ClassWithStaticMethod {
public static void staticMethod() {
...
}
}
您可以像这样调用方法(不需要实例):
ClassWithStaticMethod.staticMethod();
听起来你可能已经将自己放在了测试的一个角落,但是可能需要考虑重新设计你的代码/测试。我不认为测试代码应该决定您的实际代码的外观或工作方式。
答案 1 :(得分:0)
由于您只需要一个对象,但是使用第二个类的函数的结果,您必须将它们分配给第一个对象(1)(通过某些属性)或者让它们在某些输入上运行(2 )(如果它们无效)。
1)firstCodeClassObject.someAttribute = SecondCodeclass.doSomeMethod(inputType input);
2)SecondCodeclass.doSomeMethod(inputType input);
答案 2 :(得分:0)
好的,找到了答案。我只需要在主类中初始化驱动程序,然后创建一个构造函数并将驱动程序引用传递给另外两个类。