-2

假设我有这个代码

public static long number;
public static void main(String args[]) {
    String str1 = args[0];
    System.out.println("str1 is = " + str1);
    long number = Long.parseLong(str1);
    System.out.println("number value is = " + number);
}

public static void test1(){
    System.out.println("number value inside test1 is = " + number);
}

假设我将 12345 作为参数传递,所以我的 o/p 将是

 str1 is  12345
 number value is  12345
 number value inside test1 is  0

我想要的是能够在 test1 方法中访问 arg[0] (用户参数)或数字(12345)的原始值。请帮我做。谢谢。!

4

3 回答 3

3

将您的类级别设置numberstr1. 当前,您设置了一个本地字段,该字段没有超出 main 方法的范围。

利用:

number = Long.parseLong(str1);

代替:

long number = Long.parseLong(str1);
于 2012-09-19T04:35:57.577 回答
0

long number = Long.parseLong(str1);

执行上述操作是在声明另一个名为 number.

这样做以访问Class variable(即静态字段)

number = Long.parseLong(str1);

于 2012-09-19T04:48:10.830 回答
0

为此,您要么需要使用全局变量,要么需要将值传递给test1函数。

您尝试使用全局变量,但是在初始化它时不需要在它前面有类型,因为这样它就变成了本地变量。所以只需使用:

number = Long.parseLong(str1);

这是您将值传递给时的代码test1

public static void main(String args[]) {
    String str1 = args[0];
    System.out.println("str1 is = "+str1);
    long number = Long.parseLong(str1);
    System.out.println("number value is = "+number);
}

public static void test1(long number){
     System.out.println("number value inside test1 is = "+number);
}

然后你只需要使用

test1(number);

在你的main()方法中的某个地方。

于 2012-09-19T04:38:10.697 回答