public static void A(String request){
String aa = "";
switch(request){
case "1":
B(aa);
break;
case "2":
aa = "10";
break;
}
}
private static void B(String str) {
System.out.println("aa=" + str);
}
代码如上,我的需求是想要在B方法中拿到执行A(“2”)时候初始化的aa的值
求助大神。急!!!
在main方法中,类名.B 就能取出了。
啥子意思
A("2");
A("1");
然后希望B方法输出的是10?
switch()括号内只能为int,short,long,char类型吧
在一个类中是不能调用另外一个类方法中定义的局部变量的,若想调用可以按以下几种方法做:
1、将局部变量定义为类中的成员变量,然后通过对象来调用。
2、将局部变量用final关键字定义为常量,然后通过类名.常量名来调用。
3、若方法的返回值是void,可以修改方法的返回值类型为局部变量的类型, 然后在方法的最后加上一句 return 局部变量;就可以通过调用此方法来获得该局部变量。这里可以用第三种方法。
1.可以封装一个功能,通过返回类型参数传递,比如:
privte String show1(){return aa;}
private void show2(String str){...}
...main(args){show2(show1());}
2.直接aa作为全局变量初始化
类名.B(类名.A("2"));
A 方法添加返回值 String ---> return aa;
B 方法直接 获取A("2")--->aa
A 方法添加返回值 String ---> return aa;
B 方法直接 获取A("2")--->aa
要看你用什么版本的jdk 不同版本的jdk 对switch的条件 类型 有限定 比如比较老的jdk1.5 switch就不支持String类型
再说 你的逻辑 不是很清楚 也不知道你想干啥