gpt4 book ai didi

java - 从android中的静态方法调用非静态方法

转载 作者:太空狗 更新时间:2023-10-29 13:27:16 25 4
gpt4 key购买 nike

我尝试从静态方法调用非静态方法但没有任何结果,我的应用程序崩溃了我的代码:

public class MainActivity extends Activity  {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);
setAuth();
///

///



}
public static void setAuth() {

new MainActivity().d();
}
public void d()
{

Toast.makeText(getApplicationContext(), "fff",Toast.LENGTH_SHORT).show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}



}

是否允许从android中的静态方法调用非静态方法?以及如何???

最佳答案

类中的静态方法必须能够在不引用类的实例化的情况下执行:

class MyClass {
int information;
static int usefulNumber = 72;

int method() {
return information;
}

static int methodStatic() {
// Cannot refer to information
// But can refer to usefulNumber
}
}

因此,根据定义,它不能在类中执行非静态方法,因为该方法不存在,除非正如@RhinoFeeder 所说,您已经实例化了类将该实例传递给静态类:

    static int methodStatic2(MyClass myClass) {
return myClass.method();
}

关于java - 从android中的静态方法调用非静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20089568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com