【问题标题】:how to return multiple double type variables from a public method in java?如何从java中的公共方法返回多个双精度类型变量?
【发布时间】:2015-04-30 05:37:44
【问题描述】:

我有一个公共方法,我想将双变量传递给我的 main 方法,我再次调用它们:

(在实际代码中,公共方法被多次调用,需要返回给调用者相同的值)

 public double ReturnDoubleVariables() 
  {
    double ret1 promptUserForInput("1st Varaible", );
    double ret2 promptUserForInput("2nd Varaible", );
    double ret3 promptUserForInput("3rd Varaible", );
    double ret4 promptUserForInput("4th Varaible", );
    double ret5 promptUserForInput("5th Varaible", )

    return (ret1, ret2,...,ret5);
   }


  private void execute0() {

   Simulation simulation_0 = getActiveSimulation();
        scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret1);

        scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret2);

        scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret3);

        scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret4);

        scalarProfile_0.getMethod(ConstantScalarProfileMethod.class).getQuantity().setValue(ret5);

   }

我在从公共方法返回多个变量时遇到问题,然后我不知道应该如何调用主方法中的变量?

提前致谢

【问题讨论】:

    标签: java variables object methods


    【解决方案1】:

    你可以返回一个数组:

     public double[] ReturnDoubleVariables() 
     {
        double ret1 = promptUserForInput("1st Varaible", );
        double ret2 = promptUserForInput("2nd Varaible", );
        double ret3 = promptUserForInput("3rd Varaible", );
        double ret4 = promptUserForInput("4th Varaible", );
        double ret5 = promptUserForInput("5th Varaible", )
    
        return new double[]{ret1, ret2, ret3, ret4, ret5};
      }
    

    或:

     public double[] ReturnDoubleVariables() 
     {
        double[] ret = new double[5];
        ret[0] = promptUserForInput("1st Varaible", );
        ret[1] = promptUserForInput("2nd Varaible", );
        ret[2] = promptUserForInput("3rd Varaible", );
        ret[3] = promptUserForInput("4th Varaible", );
        ret[4] = promptUserForInput("5th Varaible", )
    
        return ret;
      }
    

    【讨论】:

    • 嗨,Eran 谢谢你的帖子。它回答了我的第一个问题。但是我无法在 main 方法中调用这些变量.. 你能为此提出一些建议吗>?
    【解决方案2】:

    您可以返回一个 Double 值列表:

    public List<Double> ReturnDoubleVariables() 
      {
        double ret1=promptUserForInput("1st Varaible", );
        double ret2=promptUserForInput("2nd Varaible", );
        double ret3=promptUserForInput("3rd Varaible", );
        double ret4=promptUserForInput("4th Varaible", );
        double ret5=promptUserForInput("5th Varaible", )
        List<Double> list = new ArrayList<Double>();
        list.add(ret1);    
        list.add(ret2);
        ...
        list.add(ret5);
        return list;
       }
    

    或者您可以为 reurn 值创建一个类:

    public class RetDouble{
       private double ret1;
       private double ret2;
       ... 
       private double ret5;
       //getter and setter;
    }
    public RetDouble ReturnDoubleVariables() 
      {
        double ret1=promptUserForInput("1st Varaible", );
        double ret2=promptUserForInput("2nd Varaible", );
        double ret3=promptUserForInput("3rd Varaible", );
        double ret4=promptUserForInput("4th Varaible", );
        double ret5=promptUserForInput("5th Varaible", );
    
        RetDouble r = new RetDouble();
        r.setRet1(ret1);
        r.setRet2(ret2);
        ...
        r.setRet5(ret5);
        return r;
       }
    

    【讨论】:

    • 嗨 Jens 非常感谢您的回答。该方法对我有用。但是我不能将此方法中返回的变量调用到我的 main 方法中。你能告诉我应该怎么做吗?
    • @Jaiscience 你指的是哪一个。第一个还是第二个?
    • @Jaiscience 抱歉,我没能找到你。
    • 嗨 Jens 如果您滚动到我的原始帖子顶部,在公共方法之后,我已经布置了另一个名为:private void execute0() { *******code块********)...在这里我调用了从我的方法“ ReturnDoubleVariables() ”返回的那些变量,但是我无法在 execute0() 方法中调用这些变量.. 你能告诉我哪里错了?
    • @Jaiscience 你必须调用函数ReturnDoubleVariables() 然后你得到返回值。如果你使用我的第二个示例,如果你调用RetDouble r = ReturnDoubleVariables(),你会得到RetDouble,然后你可以通过调用r.getRet1() 得到ret1。希望这会有所帮助。
    【解决方案3】:

    您可以返回 double[] 喜欢

    public double[] ReturnDoubleVariables() {
        return new double[] { promptUserForInput("1st Varaible"),
                promptUserForInput("2nd Varaible"),
                promptUserForInput("3rd Varaible"),
                promptUserForInput("4th Varaible"),
                promptUserForInput("5th Varaible") };
    }
    

    此外,Java 方法名称以小写字母开头(按照惯例),因此上述应为 returnDoubleVariables

    【讨论】:

      【解决方案4】:

      将它们捆绑在一个对象中,最好是List&lt;Double&gt;(除非您事先知道要返回多少,然后使用一个简单的数组)。

      列表示例

      public List<Double> ReturnDoubleVariables() {
      
           List<Double> list = new ArrayList<Double>();
      
           //consider looping instead...
           list.add(promptUserForInput("1st Varaible", ));
           list.add(promptUserForInput("2nd Varaible", ));
           list.add(promptUserForInput("3rd Varaible", ));
           list.add(promptUserForInput("4th Varaible", ));
           list.add(promptUserForInput("5th Varaible", ));
      
           return list;
      

      }

      数组示例

      public double[] ReturnDoubleVariables() {
      
           double[] arr = new double[5];
      
           //consider looping instead...
           arr[0] = list.add(promptUserForInput("1st Varaible", );
           arr[1] = promptUserForInput("2nd Varaible", );
           arr[2] = promptUserForInput("3rd Varaible", );
           arr[3] = promptUserForInput("4th Varaible", );
           arr[4] = promptUserForInput("5th Varaible", );
      
           return arr;
      

      }

      【讨论】:

        【解决方案5】:

        使用 Array 或使用 List(ArrayList,LinkedList)、Sets 等集合返回它

        public double[] ReturnDoubleVariables() {
        return new double[] { promptUserForInput("1st Varaible"),
                promptUserForInput("2nd Varaible"),
                promptUserForInput("3rd Varaible"),
                promptUserForInput("4th Varaible"),
                promptUserForInput("5th Varaible") };
        

        }

        public ArrayList<Double> ReturnDoubleVariables() {
        ArrayList<Double> destinationArray = new ArrayList<Double>();
        destinationArray.add("1st Varaible")
        destinationArray.add("2nd Varaible");
        destinationArray.add("3rd Varaible");
        return destinationArrayList;
        

        }

        【讨论】:

          猜你喜欢
          • 2018-04-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-11
          • 2019-06-17
          • 1970-01-01
          相关资源
          最近更新 更多