【问题标题】:how to call a non static method from a static method?如何从静态方法调用非静态方法?
【发布时间】:2011-11-26 16:13:11
【问题描述】:

如何从 BroadcastReceiver 类调用非静态方法?

如何从静态方法调用非静态方法?

public static void startonlylocationmethod (long iden)
{
    onlylocation(iden); //dosen't let me
}

public void onlylocation (long id)
{

}

附言 如果我创建一个对象然后使用它来调用应用程序崩溃的方法

【问题讨论】:

  • 想一想:这没有意义。静态方法是一个class方法,是无状态的;非静态方法是一个 instance 方法,它依赖于具体的对象实例。 哪个实例是静态方法应该引用的?

标签: java android methods static


【解决方案1】:

你需要创建类的实例,其中非静态方法被定义为成员方法

【讨论】:

  • 如果我创建一个对象然后使用它来调用应用程序课程的方法
  • 崩溃是什么意思?异常/错误请留言
  • 没有消息。它是android,它只是崩溃了。 “我们很抱歉...... bla bla bla”
【解决方案2】:

要么:

  1. onlylocation设为静态。
  2. 创建您所在类的实例并在该实例上调用onlylocation

【讨论】:

  • 我的方法里面的对象不能是静态的
  • 我的意思是如果你的“onlylocation”方法在类“A”中,你需要创建A a = new A(); a.onlylocation(iden);
【解决方案3】:

你需要做这样的事情:

class A{

static A a = new A();
public static void startonlylocationmethod (long iden)
{
    a.onlylocation(iden);
}

public void onlylocation (long id)
{
   ...
}   

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    相关资源
    最近更新 更多