调用static void

时间:2011-10-26 13:19:02

标签: android

如何调用我的功能?

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

显然不是:

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

4 个答案:

答案 0 :(得分:2)

你应该试试     ClassName.dial();

原因是静态方法属于类本身,而不属于它的单个实例。拨打instance.dial()是合法的,但不鼓励。

答案 1 :(得分:1)

你应该使用ClassName.StaticMethod ....来调用类的静态方法

答案 2 :(得分:0)

这个问题有什么特别之处?

如果你有一个像

这样的课程
public class Test {
    public void nonStaticFct() {
        staticFct();
    }

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

完美地工作(即使你应该总是通过Classname.FctName(Test.staticFct())调用静态函数

我猜这里的问题是缺少的论点。

[编辑]显然我错了,根据Java Code Conventions你可以通过简单地调用它来使用Classmethod而不使用classname(即使它看起来很奇怪,因为我希望隐含this.staticFct( ) - 但可能Java编译器足够智能了)

答案 3 :(得分:0)

您无法传递null。您必须发送上下文对象。

您的功能位于何处?如果它在一个Activity或其中,只需将“this”作为参数传递。

如果它在BroadcastListener或Service中,只需将参数更改为Context并传递“this”。