访问字段获取nullpointerexception时的Android抽象类继承

访问字段获取nullpointerexception时的Android抽象类继承,android,inheritance,nullpointerexception,abstract-class,Android,Inheritance,Nullpointerexception,Abstract Class,我想通过抽象和继承协议来设计这个模块。但当访问继承类(Sms、设置等)中的抽象类(AbsModul)字段时,我有一个nullpointerexception 但当我访问静态方法(getModuleMechanism())中的抽象类(AbsModul)字段时 我怎样才能解决这个问题 AbsModul.java moduleMechanism.java MainActivity.java 空指针问题 public class Category extends AbsModul{ publi

我想通过抽象和继承协议来设计这个模块。但当访问继承类(Sms、设置等)中的抽象类(AbsModul)字段时,我有一个nullpointerexception

但当我访问静态方法(getModuleMechanism())中的抽象类(AbsModul)字段时

我怎样才能解决这个问题

AbsModul.java

moduleMechanism.java

MainActivity.java

空指针问题

public class Category extends AbsModul{

    public  static String tag = null;
    ...
    public Category() {
        //I debug here
        //All AbsModul field null
        //So getActivity() reference null
        tag = getActivity().getString(R.string.categoryTAG); //Exception here > NullPointerException
    }
    ...
}


public class Sms extends AbsModul{

    Settings settings;

    ...
    public Sms() {
        //I debug here
        //All AbsModul field null
        //So getSettings() reference null
        settings = getSettings(); //Exceptions here > NullPointerException
    }
    ...
}
但当通过静态方法访问正常时


AbsModul.activity为空,因为它尚未初始化。您应该将类别构造函数更改为将活动作为参数传入(或在AbsModul中定义构造函数)。我无法添加构造函数。我们有更多参数和更多类扩展此。。请提供其他解决方案?AbsModul.activity为空,因为它尚未初始化。您应该将类别构造函数更改为将活动作为参数传入(或在AbsModul中定义构造函数)。我无法添加构造函数。我们有更多参数和更多类扩展此。。请再给我一个解决方案好吗?
public class ModulMechanism extends AbsModul {

    public void setUp(Activity activity){
        setActivity(activity);

        super.modulMekanizmasi = this;
        super.sms       = new Sms();
        super.settings  = new Settings();
        super.search    = new Search();
        super.category  = new Category();
    };

}
public class MainActivity extends AppCompatActivity {

    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);

        new ModulMechanism().setUp(this);
    }
    ...
}
public class Category extends AbsModul{

    public  static String tag = null;
    ...
    public Category() {
        //I debug here
        //All AbsModul field null
        //So getActivity() reference null
        tag = getActivity().getString(R.string.categoryTAG); //Exception here > NullPointerException
    }
    ...
}


public class Sms extends AbsModul{

    Settings settings;

    ...
    public Sms() {
        //I debug here
        //All AbsModul field null
        //So getSettings() reference null
        settings = getSettings(); //Exceptions here > NullPointerException
    }
    ...
}
public Settings accessSettings(){

    //When access via AbsModul.getModulMechanism() work normally and no exception..
    return AbsModul.getModulMechanism().getSettings();
}