访问字段获取nullpointerexception时的Android抽象类继承
我想通过抽象和继承协议来设计这个模块。但当访问继承类(Sms、设置等)中的抽象类(AbsModul)字段时,我有一个nullpointerexception 但当我访问静态方法(getModuleMechanism())中的抽象类(AbsModul)字段时 我怎样才能解决这个问题 AbsModul.java moduleMechanism.java MainActivity.java 空指针问题强>访问字段获取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
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();
}