-1

我想从主类的 onCreate 方法调用位于子类内部的方法。

我尝试过这样的事情,但由于主类在某种程度上是静态的,我无法引用非静态子类。我不想让子类成为静态的!

public class NetworkBroadcast extends Activity {
    public void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState);
        Caster.castMac();
    }

    public class Caster extends Thread {
        public void castMac() {}
    }
}
4

2 回答 2

3

castMac是 的实例方法Caster,这意味着您需要创建(或以其他方式获取)的实例Caster才能调用它。或者,您可以更改castMac为静态方法。很难说哪个是合适的,因为它目前是无操作的。如果您能提供更多背景信息,我们或许可以提供更具体的建议。

(作为第二点,扩展 . 很少是一个好主意Thread。相反,实现Runnable并将其传递给Thread构造函数。)

于 2012-06-22T16:03:54.477 回答
1

要么使 castMac() 方法静态

public static voic castMac() {}

或在调用之前创建 Caster 类的实例castMac()

Caster c = new Caster();
c.castMac();
于 2012-06-22T16:05:19.957 回答