我编写了下面的代码,我的问题是我想将数据从FICSR类传递到主类。我尝试在FICSR类的构造函数中声明“在calcFICS()方法内提到的ArrayList”,但之后我发现我无法在 的calcFICS()方法中使用它们,为什么?以及如何解决它。如何在分离类中的线程将数据传递给主类
MainClass:
public static void main(String[] args) {
MatFactory matFactory = new MatFactory();
FilePathUtils.addInputPath(path_Obj);
Mat bgrMat = matFactory.newMat(FilePathUtils.getInputFileFullPathList().get(0));
if (bgrMat != null) {
if (!bgrMat.empty()) {
fiCSR = new FICSR(bgrMat, SysConsts.MIN_CS_RADIUS);
} else {
Log.E(TAG, "MainClass", "bgrMat is empty");
}
} else {
Log.E(TAG, "MainClass", "bgrMat is null");
}
FICSR类:
public FICSR(Mat bgrMat, int csRadius) {
// TODO Auto-generated constructor stub
this.bgrMat = bgrMat;
this.csRadius = csRadius;
this.fiCS_R3 = new Thread(new FICS(this.bgrMat, this.csRadius), "FICS_R" + this.csRadius);
fiCS_R3.start();
}
private class FICS implements Runnable {
private Mat bgrMat;
private int csRadius;
public FICS(Mat bgrMat, int csRadius) {
// TODO Auto-generated constructor stub
this.bgrMat = bgrMat;
this.csRadius = csRadius;
}
public void run() {
// TODO Auto-generated method stub
calcFICS(this.bgrMat, this.csRadius);
}
public static void calcFICS(Mat bgrMat, int csRadius) {
// TODO Auto-generated method stub
ArrayList<Mat> onOffCSActRegMatsList = null;
ArrayList<Mat> offOnCSActRegMatsList = null;
ArrayList<Mat> onOffCSFullMatsList = null;
ArrayList<Mat> offOnCSFullMatsList = null;
onOffCSActRegMatsList = new ArrayList<Mat>();
offOnCSActRegMatsList = new ArrayList<Mat>();
onOffCSFullMatsList = new ArrayList<Mat>();
offOnCSFullMatsList = new ArrayList<Mat>();
//here I want to add values to the ArrayLists defined above and return them to the main class. how can I do that?
... ... ...
这两个类在同一个包中? – AADProgramming
@AADTechnical是的......如果他们在同一个cpackage中,那可能会有帮助吗? – user2121