Вызов внешнего класса из внутреннего класса с потоком в MVC
Я использую модель MVC и пытаюсь создать поток в контроллере. Когда я во внутреннем классе run(), мне нужно получить правильную модель, но она выбрасывает нулевой указатель.
Вот код для создания внутреннего класса и потока из внешнего контроллера:
Thread thread = new Thread(new runWithThread(OpsSec, AmToChange, AgentID, balance, currency, selected_account_obj));
thread.start();
Внутри runWithThread я пытаюсь получить правильную модель. AMModel - это класс Model, аозначение - это метод внутри него. getModel определен в абстрактном контроллере, который я расширяю (наследование реализации).
((AMModel)getModel()).withdraw(10, "USD");
Он работает во внешнем классе, но не во внутреннем, и я не уверен, почему я получаю нулевой указатель с помощью ((AMModel)getModel()). Любая помощь будет оценена. Спасибо
2 ответа
Я понял ошибку. У меня был "extends AbstractController" как во внешнем классе контроллера, так и во внутреннем классе runWithThread. Я использую Rational Arch, и он ничего не помечал, поэтому я не заметил ошибку.
Я знаю, что это довольно старый, но попробуйте AMModel.this.withdraw(10, "USD");
, Вот общий пример:
class Outer
{
class Inner
{
public void test()
{
Outer.this.variable = 1;
}
}
public int variable = 0;
private Inner inner;
}
После звонка inner.test()
, variable
было бы 1
,