任何人都可以帮我从函数X()
返回数组。我想将该数组作为参数传递给函数Y()
。
我有什么:
int[] create()throws IOException {
System.out.println("Enter Size of Array");
BufferedReader b=new BufferedReader(new InputStreamReader(System.in));
n=Integer.parseInt(b.readLine());
//A=new int[n];
System.out.println("Enter Array"); for(i=0;i<n;i++) {
int y=Integer.parseInt(b.readLine());
A[i]=y;
}
return A;
}
void getarray() {
}
答案 0 :(得分:6)
您可以将参数存储到成员变量中的X()
,然后通过Y()
中的成员变量访问该数组。
class YourClass {
private int[] someArray;
public void X(int[] argArray) {
someArray = argArray; // save it like this
...
}
public void Y() {
...
someArray[3] = 2; // access it here
}
}
请注意,如果您想要线程安全,可以考虑将这些临时变量存储在ThreadLocal<int[]>
中。
关于更新:如果A
是成员变量,您可以通过A
访问getarray()
中的A
或者,this.A
如果它被某个局部变量遮蔽。
答案 1 :(得分:1)
通过声明方法
将数组传递给方法 public void myMethod(int[] ary);
然后,如果你有一个对象的实例,你可以
int[] myAry = new int[9];
obj.myMethod(myArray);
现在如果你的myMethod正在调用你的第二个方法,它只需将对数组的引用传递给第二个方法,它需要接受一个数组参数。如果没有,那么您需要将数组存储在类中的成员字段中。
class MyClass {
int[] tmp;
public void myMethod(int[] ary) {
this.tmp = ary;
}
public void myMethod2(){
// can use this.tmp, which will be null if it isn't set.
}
}
答案 2 :(得分:1)
要将数组作为参数传递给您可以使用的方法:
public void X(int[] array) {
}
如果要从同一个类的两个不同方法访问数组,可以使该数组成为该类的成员:
public class MyClass {
int[] array = new int[10];
public void X() {
}
public void Y() {
}
}
现在,X
和Y
都可以访问数组。
答案 3 :(得分:0)
class Z
{
private int a[];
public void x(int input [])
{
a=input.clone();//store input values in 'a' safely
}
public void y()
{
//work with a [] here
System.out.println(a[0]);
}
}
答案 4 :(得分:0)
您可以将任何内容传递给方法,包括数组。您所要做的就是在对象或简单变量类型之后添加方括号[]
(例如int[] input
,char[] input
,JTree[] trees
等等。)
public void X(int[] input) {
//do stuff with 'input'
Y(input);
}
public void Y(int[] input) {
//do stuff with 'input'
}
请注意,方法Y
接受简单变量类型int
的数组。如果没有,则必须将数组存储在类的成员字段中,以便在Y
方法中使用数组。