2012-06-22 19 views
-1

Я хочу вызвать метод, расположенный внутри подкласса, из метода onCreate основного класса.Вызов метода подкласса в android

Я пробовал что-то вроде этого, но поскольку основной класс как-то статичен, я не могу сделать ссылку на нестатический подкласс. Я не хочу ставить подклассы!

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

    public class Caster extends Thread { 
     public void castMac() {} 
    } 
} 
+0

вы не собираетесь создать экземпляр BEF Вы называете функцию-член? и как родительский класс статический, если он не объявлен как статический! Это поможет вам http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html – Orlymee

ответ

3

castMac является экземпляр метод Caster, что означает, что вам нужно создать (или иным образом получить) экземпляр Caster для того, чтобы вызвать его. Кроме того, вы можете изменить castMac как статический метод. Трудно сказать, что уместно, поскольку в настоящее время это не-op. Если вы можете предоставить больше контекста, мы сможем дать более конкретные рекомендации.

(В качестве вторичной точки, это очень редко хорошая идея, чтобы расширить Thread. Вместо этого, осуществлять Runnable и передать в Thread конструктор.)

+0

@Downvoter: Зачем комментировать? –

+0

Жаль, что это был я. Автор не заслуживает вашего ответа. Это базовая Java. Это его работа. Я сделал это, потому что думаю, что вы не должны отвечать. –

+0

@haibison: Это действительно сухая причина для downvote, IMO. Очевидно, вы можете использовать ваши downvotes, как вам нравится, но такое отношение, безусловно, не побудит меня отвечать на любые ваши * вопросы в будущем. –

1

либо сделать метод castMac() статический

public static voic castMac() {} 

или создать экземпляр вашего класса МНЛЗ перед вызовом castMac()

Caster c = new Caster(); 
c.castMac(); 
Смежные вопросы