我正在尝试使用类实例化和this
。
在下面的示例中,将testresult
类进行实例化和存储。
this
将用于将该类实例作为参数传递给另一个类。
这是this
的正确用法,因为该类在其他地方被实例化了吗?
不知道为什么我看到错误为“构造函数testfail(new Handler(){})
未定义”。
代码段:
public class testmain {
private testresult tr;
private testfunc tf;
public testmain() {
tr = new testresult();
tf = new testfunc(tr);
}
}
public class testfunc {
private testresult storeit;
public testfunc(testresult inst) {
storeit = inst;
}
// this will be running as seperate thread running forever.
}
public class testresult {
private testfail tp;
public void function() {
tp = new testfail(this); //----> error new Handler(){} undefined
}
}
public class testfail {
public testfail(testresult tr) {
///
}
}
编辑:由内部类引起的错误
public class testresult {
private testfail tp;
private class test {
public void function() {
tp = new testfail(this); ----> error
// new Handler(){} undefined
}
}
}
答案 0 :(得分:0)
如上所述,您的代码将编译。由于testfail
接受testresult
的参数,因此使用this
会起作用,即使它很尴尬而不是通常看到的内容。
除非您通过引入另一个接受testfail
作为参数的构造函数来覆盖您的Handler
构造函数,否则会出现此编译失败。
举个例子:
public class testfail {
public testfail(testresult tr) {
///
}
public testfail(Handler hr) {
}
}