【问题标题】:How to get return value from a method whis is already using passed parameters from another method?如何从已经使用另一个方法传递的参数的方法中获取返回值?
【发布时间】:2019-09-01 19:27:31
【问题描述】:

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

Error:(12, 28) java: 类参数中的方法 Method2 不能 适用于给定类型;必需:int 找到:无参数
原因:实际参数列表和形式参数列表的长度不同

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) ;
    }
}

【问题讨论】:

  • int ans = parameters.Method2(); 无效,因为您必须将 int 参数传递给此方法。
  • 您似乎错过了一些基础知识。我建议你学习Oracle's Java Tutorial。

标签: java parameters


【解决方案1】:

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

看起来你想更新静态成员变量。

【讨论】:

  • 如何更新 'a' 以及它如何使班级成员黯然失色?
【解决方案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);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2018-12-24
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多