我在method A
中有一个字符串数组(变量),它出现在class A
中。现在我想访问它,并使用method B
中class B
的另一个字符串数组进行设置。 class B
位于class A
。
我是Java的初学者,所以任何帮助都非常感谢。非常感谢。
public class A {
B myclassb;
void methodA() {
String[] myvar;
}
}
public class B {
void methodB() {
// how do I get to A.methodA.myvar?
}
}
答案 0 :(得分:1)
你想要实现的目标并不完全清楚,但我会尽力回答。 选项1:您说要在嵌套类中的方法b中为方法a分配变量。这不是直接可能的,因为函数变量不能从另一个函数访问,并且在函数完成执行时不再存在。所以你可以将它作为输入参数传输:
public class A {
public void a(String[] input){
String[] theArray = input;
}
private class B{
private void b(){
String[] input = new String[] {"an", "awesome", "Test"};
a(input);
}
}
}
选项2:使用成员变量:
public class A {
private String[] theArray;
public void a(){
this.theArray = new String[] {"a", "nice", "Test"};
B bObject = new B();
//modify value within b():
bObject.b();
//or assign it using a return value:
this.theArray = bObject.b2();
}
private class B{
private void b(){
theArray = new String[] {"an", "awesome", "Test"};
}
private String[] b2(){
return new String[] {"an", "awesome", "Test"};
}
}
}
答案 1 :(得分:0)
您是否正在寻找能够通过引用显示Java如何通过的内容,如下所示:
public class Test {
public Test() {
}
public void methodA() {
String [] arr = new String[3];
arr[0] = "One";
arr[1] = "Two";
arr[2] = "Three";
printArray(arr);
methodB(arr);
printArray(arr);
}
public void methodB(String [] arr) {
arr[0] = "A";
arr[1] = "B";
arr[2] = "C";
}
public void printArray(String [] arr) {
for (int i = 0; i < 3; i++) {
System.out.println(arr[i]);
}
}
public static void main(String [] args) {
Test test = new Test();
test.methodA();
}
}
这将输出: 一 二 三 一个 乙 ç