我在同一个班级有两种方法..
public static void first_method (int x,int y)
{
int xx = x;
int yy = y;
}
public void second_method (TextView tv)
{
}
如何将变量xx从第一种方法传递给第二种方法?
感谢
答案 0 :(得分:3)
您可以这样做:
public static void first_method (int x,int y)
{
int xx = x;
int yy = y;
TextView tv = new TextView(this);
tv.setText("" + xx);
second_method(tv);
}
public void second_method (TextView tv )
{
//do stuff with anyVar
}
当然,一种不太简单的方法是给第一个方法一个返回值。
public static int first_method (int x,int y)
{
int xx = x;
int yy = y;
return xx;
}
second_method(first_method(any_int, any_int2));
在此示例中,当您致电second_method
时,会调用它,其返回值为first_method(any_int, any_int2)
答案 1 :(得分:0)
值得注意的是,您无法在静态方法中引用非静态方法。
尝试:
public void first_method (int x,int y)
{
int xx = x;
int yy = y;
second_method(xx);
}
public void second_method (int x)
{
}
答案 2 :(得分:0)
如果您从第一种方法调用第二种方法,那么代码将是
public static void first_method (int x,int y)
{
int xx = x;
int yy = y;
second_method(xx)
}
public void second_method (int xx)
{
system.out.println(xx); // proof that xx was sent
}
但是,如果您不打算从第一个方法中调用second_method,那么只需将xx设为全局变量。
答案 3 :(得分:0)
如果您不想为被叫global
parameters
function
,则可以使用second_method()
个变量
/*declare global variables*/
int global_x;
int global_y;
public static void first_method (int x,int y)
{
int xx = x;
int yy = y;
global_x = xx; /*assign value to global variable before function call*/
global_y = yy;
second_method (); /*values set in global variable, now call function*/
}
public void second_method ()
{
/*Access the global variable here*/
int temp_x = global_x;
int temp_y = global_y;
}
答案 4 :(得分:0)
回答(此版本)问题:
I have two methods in the same class ..
public static void first_method (int x,int y)
{
int xx = x;
int yy = y;
}
public void second_method (TextView tv)
{
}
How I can pass the variable xx from first method to second method ?
THANKS
长话短说:你不能。你在那里的两个变量都是first_method的本地变量。通过使用参数,您可以传递它们的值,但是您不会自己传递变量(差异很大)。
至于已经给出的一些答案,建议使用全局变量':Java没有全局变量。它们指的是实例变量。
在这种情况下,你不会通过'它们,但它们将存在于两种方法都可以访问它们的范围内。执行此操作时,更改一个方法中的值将影响另一个方法中的值(当将值作为参数传递并将变量保持为本地时不会发生这种情况。)
无论如何,为了传递它们,你不能只传递一个int并期望一个方法来接收TextView的实例。