如何在单例实例中调用接口

时间:2013-02-12 10:15:49

标签: java android

这是我的班级

public class MyReceiver implements TolEnabled

在这里我想打电话

MyManager.getInstance(context, this, Properties.SDSMT, localText.toString(), Integer.valueOf(repetitions), false);

并且在MyManager课程中,我有像

这样的单身人士
public static MyManager getInstance(Context context, TolEnabled tolActivitiy, String enginePackage, String text, int repetition) {
        if (instance == null) {
            instance = new MyManager (...);
        }

        return instance;
    }

但在我的MyReceiver接收器中,当我打电话给单身时,我得到了

  

方法getInstance(Context,TolEnabled,String,String,int)in   MyReceiver类型不适用于参数(Context,   MyReceiver,String,String,Integer,boolean)

我该怎么办? MyReceiver实现接口,如果不是单例,则可以工作。如何在单身中使用它?

3 个答案:

答案 0 :(得分:1)

从你看来,你在getInstance调用中提供了一个额外的布尔参数,这是getInstance签名所不期望的。

答案 1 :(得分:1)

您需要删除

中的布尔条件
MyManager.getInstance(context, this, Properties.SDSMT, localText.toString(), Integer.valueOf(repetitions), false);

或者修改MyManager.getInstance()方法以接受布尔值作为最后一个参数。

public static MyManager getInstance(Context context, TolEnabled tolActivitiy, String enginePackage, String text, int repetition, boolean condition) {
  if (instance == null) {
            instance = new MyManager (...);
        }

        return instance;
}

答案 2 :(得分:1)

您的方法声明如下

Context, TolEnabled, String, String, int

当你调用getInstance时,你提供以下参数

Context, MyReceiver , String, String, Integer, boolean

结论:删除最后一个布尔参数。