这看起来很简单,但我找不到一种方法可以在我正在制作的程序中完成这项工作。我有两个类,在其中一个类中,我创建了一个数组,我想在另一个类中访问。
这是主要班级......
public class main {
public static void main(String[] args) {
boolean[] pixelValues;
pixelValues = [99];
}
}
当然,我省略了很多,但这是我遇到问题的代码。第二堂课有点像这样......
public class pixelAssign {
public pixelAssign(posX, posY) {
main.pixelValues[ {some number} ] = {some value};
}
}
我的问题是我无法访问我在主类中创建的pixelValues数组,这是我在第二位代码中创建的函数。我在第二位代码中说错误(1),表示无法找到变量,(2),我错过了标识符(?)。这里的代码有点未完成,但稍后将从主类调用第二位中的函数。
任何帮助都会非常受欢迎!
答案 0 :(得分:0)
为什么不创建函数以便它接受数组作为参数。然后,您可以从ClassA将数组发送到classB。
这里似乎还有另一个问题。
pixelValues是一个布尔数组还是一些数字(int)?
boolean[] pixelValues;
pixelValues = [99];
至于功能:
public pixelAssign(myArray, posX, posY) {
}
因此,在调用该函数时,请使用
pixelAssign(pixelValues, posX, posY)
答案 1 :(得分:0)
也许您已经更改了代码以使其更简洁,但看起来您只是在错误的范围内声明数组。你能改变它吗?
public class main {
boolean[] pixelValues;
public static void main(String[] args) {
pixelValues = [99];
}
}
答案 2 :(得分:0)
将Paul's和SANM2009's答案放在一起:
你应该:
public class main {
static int[] pixelValues;
public static void main(String[] args) {
pixelValues = [99];
}
}
public class pixelAssign {
public pixelAssign(posX, posY) {
main.pixelValues[0] = 98;
}
}
这应该工作IF,只有IF类main和pixelAssign在同一个包中!否则,pixelValues将不可见。
如果您想坚持使用Java Good Practices:
static
。将pixelValues设置为private
或protected
并创建方法:
public class Main {
private int[] pixelValues;
public Main() {
pixelValues = [99];
}
public void setPixelValue(int position, int value) {
pixelValues[position] = value;
}
public static void main(String[] args) {
Main main = new Main();
new PixelAssign(main);
}
}
public class PixelAssign {
public PixelAssign(Main main, posX, posY) {
main.setPixelValue(0, 98);
}
}