Java 如何在另一个方法中调用变量?
如何在同一Java 如何在另一个方法中调用变量?,java,Java,如何在同一类中的另一方法中调用变量 public void example(){ String x='name'; } public void take(){ /*how to call x variable*/ } 首先声明接受参数的方法: public void take(String s){ // } 然后通过它: public void example(){ String x = "name"; take(x); } 使用实例变
类中的另一方法中调用变量
public void example(){
String x='name';
}
public void take(){
/*how to call x variable*/
}
首先声明接受参数的方法:
public void take(String s){
//
}
然后通过它:
public void example(){
String x = "name";
take(x);
}
使用实例变量不是一个好的选择,因为它需要在调用take()
之前调用一些代码来设置值,而take()
对此没有控制权,这可能会导致错误。而且它也不是线程安全的 因为它们在不同的范围内,所以不能
解决此问题的一种方法是将x设为成员变量,如下所示:
String x;
public void example(){
this.x = "name";
}
public void take(){
// Do stuff to this.x
}
将其作为类的实例变量:
public class MyClass
{
String x;
public void example(){ x = "name"; } // note the double quotes
public void take(){ System.out.println( x ); }
}
你能不能解释一下(用文字)为什么这会回答OPs的问题,而不是仅仅发布一个代码片段?这将大大改进您的答案。我不能同意这是“一个不好的选择”。OP已经面临这样一种情况,即“x
已被设置”,这将是线程安全的(如果有多个线程试图访问它)。这就是他的设计,他在帖子中没有提到线程。实例变量将解决他描述的问题。
public class Test
{
static String x;
public static void method1
{
x="name";
}
public static void method2
{
System.out.println(+x);
}
}