如何设置一个等于静态方法中的值的double方法?

时间:2014-08-28 17:56:49

标签: java android methods static double

我有一个名为getX1()的方法,它从不同的类中获取数据:

    public double getX1(){
    double x1 = getIntent().getExtras().getDouble("s_xd2");

    return x1;
}

我希望将它设置为静态方法中的值。

    public static double[] xWerte() {
    double x1 = getX1();

    return new double[] {x1,2.0,3.0,4.0,5.0,6.0,7.0};
}

但它不会让我......它是如何运作的?

它说:非静态方法'getX1()'无法从静态上下文引用

2 个答案:

答案 0 :(得分:1)

  

它说:无法从静态上下文引用非静态方法'getX1()'

是的 - 创建一个数组或其他类似的东西没有

问题是getX1()实例方法 - 它需要在声明类的实例上运行。您的xWerte方法是静态方法,因此它自然不会有实例来操作。

选项:

  • 使xWerte成为实例方法
  • xWerte提供要使用的类的实例(例如,将其作为参数传递)
  • 使getX1成为一种静态方法(在getIntent调用时可能很棘手)

答案 1 :(得分:0)

静态方法只能调用静态方法。这是因为静态方法不属于该类的任何特定实例,但非静态方法绑定到该类的每个实例。因此,当您尝试从静态方法调用getX1()时,它不知道从哪个类实例调用该方法。要解决这个问题,可以将方程式放入静态方法中,也可以将getX1()设为静态。