我有代码,我在类中调用一个实现的方法,即cmpreValue(int real,int virtual);
public class TestCompare extends TestBaseClass {
private static final Logger logger = Logger.getLogger(TestCompare.class.getName());
String virtual= null;
String real= null;
XLSParser objVal ;
public void testSomeThing() {
// Returns some string value
real= objVal.getSomeStringValue();
virtual= getExpectedValue();
cmpreValue(virtual, real);
}
void cmpreValue(String virtual, String real)
{
if(real.equals(virtual))
{
logger.info(real);
}
else{
logger.info(virtual);
}
}
这里,cmpreValue(String virtual, String real)
使用一次,但我也希望在我的其他课程中使用此功能。所以我尝试制作另一个类,即
public class Helpervalidate{
void cmpreValue(String virtual, String real)
{
if(real.equals(virtual))
{
// Not Visible objVal
logger.info(**objVal**.something());
}
else{
logger.info(virtual);
}
}
在我的TestCompare类中创建Helpervalidate类的对象,并在TestCompare类中调用函数cmpreValue,但后来我在Helpervalidate类中未定义错误 objVal 。
因为我的类TestCompare已经扩展了TestBaseClass所以我不能再去扩展这个类了。 那么我怎样才能使我的函数cmpreValue(String virtual,String real)可以重用于其他类? 有什么方法我简单地添加功能cmpreValue(String virtual,String real)并传递值并且它工作正常吗?
答案 0 :(得分:0)
您应该在Helpervalidate.cmpreValue方法中传入所需的所有参数。即将方法签名更改为:
void cmpreValue(String virtual, String real, XLSParser objVal)
答案 1 :(得分:0)
如何仅使用帮助程序进行比较,并在类中进行所有日志记录?
如果你的方法名为" cmpreValue",那么就不能让它做任何其他事情。
答案 2 :(得分:0)
一般情况下:要将信息传递给班级,你必须
在类中存储对objVal
的引用,并在构造函数/ setter中提供该值
public class Helpervalidate{
XLSParser objVal ;
void cmpreValue(String virtual, String real){
//do stuff
}
}
将其注入方法
public class Helpervalidate{
void cmpreValue(String virtual, String real, XLSParser objVal){
//do stuff
}
}
答案 3 :(得分:0)
在帮助程序中添加属性objVal
。生成getter和setter。在实例化助手类时设置来自调用者的值。
HelperValidate validate
= new HelperValidate();
validate.setObjVal();
然后在你的方法中使用它作为this.objVal。
希望这有帮助。