繁体   English   中英

不知道如何返回一个值

[英]Can’t figure out how to Return a value

这可能会被否决,所以如果你不投票给我,你能提供一个链接到我可以找到的地方吗?

我在这里做错了什么? 我很新,似乎这应该有效。 我只是不知道我做错了什么。 这是我的错误

public class Test
{
    public static long calculate(long n)
    {   
        n = args[0];
        return n;
    }   
    public static void main(String[] args)
    {       
        long answer;
        answer = calculate();       
    }   
}

例外:

Test.java:6: error: cannot find symbol
                n = args[0];
                    ^
  symbol:   variable args
  location: class Test
Test.java:13: error: method calculate in class Test cannot be applied to given types;
                answer = calculate() ;
                         ^
  required: long
  found: no arguments
  reason: actual and formal argument lists differ in length
2 errors

argsmain方法的本地String数组。

所以首先它是main方法的一个局部变量,它在解释第一个错误的calculate方法中不可见: error: cannot find symbol

其次calculate需要一个long参数,而您正试图提供一个String 为此,您收到error: method calculate in class Test cannot be applied to given types;

因此,将args[0]转换为long作为参数后,将其传递给calculate

public class Test
{
    public static long calculate(long n)
    {   
        return n;
    }   
    public static void main(String[] args)
    {       
        long answer = 0L;
        try{
            answer = calculate(Long.parseLong(args[0]));
        }catch (ArrayIndexOutOfBoundsException ae){
            ae.printStackTrace();
        }catch (NumberFormatException nfe){
            nfe.printStackTrace();
        }
        System.out.println(answer);      
    }   
}

在整个类中,没有使用命名args定义的实例变量,您尝试使用的变量是 main 方法中的参数,只能在 main方法中访问

通过考虑您的代码,您在计算内部什么都不做,因此您可以按如下方式编写 main 方法:

 public static void main(String[] args)
    {       
        long answer;
        answer = Long.parseLong(args[0]);       
    }  

两个代码都会做同样的工作。

下面的代码可以解决您的问题

public class Test
{
    public static long calculate(String[] args)
    {
        long n = Long.parseLong(args[0]);
        return n;
    }
    public static void main(String[] args)
    {
        long answer;
        answer = calculate(args);
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM