有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从已经使用另一个方法传递的参数的方法中获取返回值?

我想获取Method2返回的值Method2正在使用Method1传递的值。但这会引发以下错误

Error:(12, 28) java: method Method2 in class parameters cannot be applied to given types; required: int found: no arguments
reason: actual and formal argument lists differ in length

import java.util.*;
import java.io.*;
import java.util.*;
public class parameters {
private static int a;

public static void main(String[] args) {
    System.out.println("Enter any number");
    Scanner sc = new Scanner(System.in);
    Double num1 = sc.nextDouble();
    parameters.Method1(num1);
    int ans= parameters.Method2();

    System.out.println(""+ans);
}

    static void Method1(double num1)
    {
        int a = (int) num1;
        Method2(a);
    }

    static int  Method2(int a)
    {
        return(a *= 3) ;
    }
}

共 (2) 个答案

  1. # 1 楼答案

    你不能那样得到它。 Method2调用需要传递一个int参数。 如果您需要获取Method2的返回值,那么: 选项1。尝试从Method1返回值。 选择2。确保使用计算值更新静态成员变量。 在这里,静态成员变量是一个参数,但在Method2中,参数掩盖了类的成员

    看起来您想要更新静态成员变量

  2. # 2 楼答案

    我建议你可以这样做。 这将返回您想要的答案,并减少两步流程

    
    import java.util.*;
    import java.io.*;
    import java.util.*;
    
    public class Parameters {
    
        private static int a;
    
        public static void main(String[] args) {
           System.out.println("Enter any number");
           Scanner sc = new Scanner(System.in);
           Double num1 = sc.nextDouble();
           int ans = Parameters.Method1(num1);
           System.out.println(""+ans);
        }
    
        static int Method1(double num1) {
            int a = (int) num1;
            return Method2(a);
        }
    
        static int  Method2(int a) {
           return (a *= 3);
        }
    }