Вызов внешнего класса из внутреннего класса с потоком в MVC - PullRequest
1 голос
/ 03 мая 2011

Я использую модель 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 ]

1 голос
/ 03 мая 2011

Я понял ошибку. У меня был "extends AbstractController" как во внешнем классе контроллера, так и во внутреннем классе runWithThread. Я использую Rational Arch, и он ничего не помечал, поэтому я не заметил ошибку.

0 голосов
/ 09 июля 2013

Я знаю, что это довольно старый, но попробуйте 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.

...