2012-06-22 4 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

castMac()를 호출하기 전에 캐스터 클래스의 인스턴스를 만들 당신은 BEF를 인스턴스화하지 않을 수 있습니다 당신은 멤버 함수를 호출합니까? static으로 선언되지 않은 경우 부모 클래스는 어떻게 정적입니까? 이렇게하면 http://docs.oracle.com/javase/tutorial/java/javaOO/nested.html – Orlymee

답변

3

castMac는 호출하기 위해 Caster의 인스턴스 생성 (또는 그렇지 않으면 획득) 할 수단 Caster인스턴스 방법이다. 또는 castMac을 정적 방법으로 변경할 수 있습니다. 현재는 아무 것도하지 않기 때문에 어떤 것이 적절한 지 알기가 어렵습니다. 더 많은 맥락을 제공 할 수 있다면 우리는보다 구체적인 조언을 줄 수있을 것입니다.

는 (보조 점으로, 매우 드물게 Thread을 확장 할 수있는 좋은 생각이 없다. 대신, Runnable을 구현하고 Thread 생성자에 그를 전달합니다.)

+0

@Downvoter : Care to comment? –

+0

미안하지만 저였습니다. 저자는 당신의 대답에 자격이 없습니다. 기본 Java입니다. 그것이 그의 직업입니다. 나는 당신이 대답해서는 안되기 때문에 그렇게했습니다. –

+0

@haibison : 그것은 downvote, IMO에 대한 정말 짜증나는 이유입니다. 분명히 당신은 좋아하지만 당신의 하향 회선을 사용하게 될 것입니다. 그런 태도는 앞으로 당신의 질문에 대답하도록 장려하지 않을 것입니다. –

1

중 정적 castMac() 메소드를 만들

public static voic castMac() {} 

또는

Caster c = new Caster(); 
c.castMac(); 
관련 문제