как избавиться от NPExceptions в "громоздких" проектах
Добавлено: 17 фев 2015, 08:14
Салам пацанам.
Вроде бы? вопрос простой, null значит сделай не null. Но когда в проекте появляются много разных объектов, со временем, гарбаж хавает эти объекты. При попытке запустить приложение в след. день получаю NPE. исправляю, все равно, разные(другие, бесконечные) нулы. Хотел спросить, как вы работаете, с объектами, в "громоздких" (:запутанных) проектах. Видимо, допускаю очень простую, но весьма серьезную вещь.
структура моего кода такова:
[syntax=java5]oncreate(){
// Инициализируются объекты
mainFragment=new MainFragment(this);
detailFragment=new DetailFragment(this);
listFragment = new ListFragment(this);
loginFragment = new LoginFragment(this);
if(loggedIN())
{
currentFragment=mainFragment;
getSupportFragmentManager().beginTransaction().add(R.id.main_fragment, currentFragment).commit();
} else
{
currentFragment=loginFragment;
getSupportFragmentManager().beginTransaction().add(R.id.login_fragment, currentFragment).commit();
}
}[/syntax]
в маин активити есть пару реализации методы показов разных фрагментов. поэтому, в из других фрагментов, при попытке вызвать метод(допустип activity.showMainFragment()) получаю null pointer. часто это бывает, вот на этой строке:
[syntax=java5]if (currentFragment.getClass().equals(fragment.getClass())) {
return;
}[/syntax]
Для меня становится туманным, почему в oncreate, mainFragment или loginFragment т.е (currentFragment) НЕпроинициализировались..
Вроде бы? вопрос простой, null значит сделай не null. Но когда в проекте появляются много разных объектов, со временем, гарбаж хавает эти объекты. При попытке запустить приложение в след. день получаю NPE. исправляю, все равно, разные(другие, бесконечные) нулы. Хотел спросить, как вы работаете, с объектами, в "громоздких" (:запутанных) проектах. Видимо, допускаю очень простую, но весьма серьезную вещь.
структура моего кода такова:
[syntax=java5]oncreate(){
// Инициализируются объекты
mainFragment=new MainFragment(this);
detailFragment=new DetailFragment(this);
listFragment = new ListFragment(this);
loginFragment = new LoginFragment(this);
if(loggedIN())
{
currentFragment=mainFragment;
getSupportFragmentManager().beginTransaction().add(R.id.main_fragment, currentFragment).commit();
} else
{
currentFragment=loginFragment;
getSupportFragmentManager().beginTransaction().add(R.id.login_fragment, currentFragment).commit();
}
}[/syntax]
в маин активити есть пару реализации методы показов разных фрагментов. поэтому, в из других фрагментов, при попытке вызвать метод(допустип activity.showMainFragment()) получаю null pointer. часто это бывает, вот на этой строке:
[syntax=java5]if (currentFragment.getClass().equals(fragment.getClass())) {
return;
}[/syntax]
Для меня становится туманным, почему в oncreate, mainFragment или loginFragment т.е (currentFragment) НЕпроинициализировались..