【问题标题】:how to access original value of the variable如何访问变量的原始值
【发布时间】:2012-09-19 04:31:45
【问题描述】:

假设我有这个代码

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)的原始值。请帮我做。谢谢!

【问题讨论】:

  • test1 可以是一个只有括号的方法:test1()...

标签: java


【解决方案1】:

将您的类级别number 设置为str1 的解析值。目前,您设置了一个没有超出 main 方法范围的本地字段。

用途:

number = Long.parseLong(str1);

代替:

long number = Long.parseLong(str1);

【讨论】:

  • @user1629109 - Vulcan 是正确的。当您在 main() 中说 long number = Long.parseLong(str1); 时,您创建了一个 NEW, DIFFERENT “数字”,因此您的全局“数字”从未被分配。
【解决方案2】:

为此,您要么需要使用全局变量,要么需要将值传递给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() 方法中的某个地方。

【讨论】:

    【解决方案3】:

    long number = Long.parseLong(str1);

    执行上述操作是在声明另一个名为number的变量。

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

    number = Long.parseLong(str1);

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 2012-09-03
      • 2016-11-24
      • 2021-10-12
      相关资源
      最近更新 更多