2011-10-26 4 views
0

함수를 어떻게 호출합니까? 분명히static void

public static void dial(Activity call) 
{ 
    Intent intent = new Intent(Intent.ACTION_DIAL); 
    call.startActivity(intent); 
} 

하지 :

dial(); /*Something should be within the brackets*/ 
+0

'this'를 인수로 전달하십시오 (물론 활동에서 시작한다고 가정하십시오) –

+0

dial (this); 공장. Anakin이 말한 것처럼 : ITS Working! – Patrick

답변

0

null을 전달할 수 없습니다. 컨텍스트 개체를 보내야합니다.

기능은 어디에 있습니까? Activity 나 그 안에 있으면 단순히 "this"를 매개 변수로 전달하십시오.

BroadcastListener 또는 서비스 내에있는 경우 매개 변수를 Context로 변경하고 "this"를 전달하십시오.

+0

매력처럼 작동합니다! – Patrick

+0

다른 클래스에서 호출하면 어떻게됩니까? 함수가있는 클래스의 이름이 Action입니다. 나는 이것을 할 수 없다는 것을 안다 : Action.dial (this); – Patrick

+0

@Patrick 예를 들어 메서드를 호출 할 때 Context를 전달하는 것이 일반적입니다. 유틸리티 클래스를 호출합니다. 그러나 항상 Activity 또는 BroadcastListener 또는 Service에서 논리를 실행하기 시작하고 모두 Context 하위 클래스이므로 항상 작업 할 항목이 있습니다. – Emmanuel

2

당신은 ClassName.dial();

이유
정적 방법이 없습니다 그것의 개별 인스턴스 클래스 자체를, 소속이다 시도해야합니다. instance.dial()에 대한 전화는 합법적이지만 권장하지 않습니다.

+0

"Activity call"로 인해 ClassName.dial()이 작동하지 않습니다. Ive는 ClassName.dial (null) 및 ClassName.dial (call)을 시도했습니다. – Patrick

+0

@ 패트릭 그리고 어떤 문제가 있습니까? 일반적으로 두 가지 방법 모두 컴파일해야합니다. "null"이 붙은 호출은 NullPtrException을 던질 것입니다. – kostja

+0

두 가지 모두 컴파일 할 수 있지만 응용 프로그램을 실행할 때 강제로 닫습니다. D – Patrick

1

당신은 클래스

0

문제는 무엇 exaclty 인의 정적 메소드를 호출하는 .... 당신의 ClassName.StaticMethod를 사용해야합니까?

당신이 가지고있는 경우에 완벽하게 (당신은 항상 Classname.FctName에 의해 정적 함수를 호출해야하는 경우에도

public class Test { 
    public void nonStaticFct() { 
     staticFct(); 
    } 

    public static void staticFct() { 
     //do something 
    } 
} 

작품 같은 클래스 (Test.staticFct())

여기 문제가 누락 된 인수 것 같다 .

[편집] 내가 (암시 적 this.staticFct을 기대하기 때문에 분명히 내가 잘못의 Java Code Conventions에 따라 당신이 그것을 이상한 것 같다 경우에도 (클래스 명을 사용하지 않고, 단순히 호출하여 Classmethod를 사용할 수 있습니다) -하지만 Java 컴파일러가 충분히 똑똑 할 수도 있음)

관련 문제