我有一个名为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()'无法从静态上下文引用
答案 0 :(得分:1)
它说:无法从静态上下文引用非静态方法'getX1()'
是的 - 创建一个数组或其他类似的东西没有。
问题是getX1()
是实例方法 - 它需要在声明类的实例上运行。您的xWerte
方法是静态方法,因此它自然不会有实例来操作。
选项:
xWerte
成为实例方法xWerte
提供要使用的类的实例(例如,将其作为参数传递)getX1
成为一种静态方法(在getIntent
调用时可能很棘手)答案 1 :(得分:0)
静态方法只能调用静态方法。这是因为静态方法不属于该类的任何特定实例,但非静态方法绑定到该类的每个实例。因此,当您尝试从静态方法调用getX1()时,它不知道从哪个类实例调用该方法。要解决这个问题,可以将方程式放入静态方法中,也可以将getX1()设为静态。