Почему моя переменная экземпляра не инициализируется @Inject, давая ноль? - PullRequest
0 голосов
/ 22 января 2020

A. java

Class A(){
    Para1 para1;
    Para2 para2;     // Getting proper Value no issue with this.
    private void method_A(){
         int sortField = service.getValue();    // Getting proper value no issue.
         if(sortField == null){
         DefaultGridPanel df = new DefaultGridPanel(para1, para2);    // Issue is in this.
         }
    }
}

DefaultGridpanel. java

public class DefaultGridPanel{

     @Inject
     private transient Provider < ApplicationInstance > appInstanceProvider;

     public DefaultGridPanel(){
        //
        //Constructor Some intialization
        System.out.print(appInstanceProvider);
        setPageSize(getRecordsPerPage());
    }

    private Integer getRecordsPerPage() {
        ApplicationInstance appInstance = appInstanceProvider.get();
   //------------Here-------------
   // appInstanceProvider getting null and throwing nullpointerException.
        Integer recordsPerPage = 0;
        if (appInstance != null) {
            recordsPerPage = appInstance.getRecordsPerPage();
        }
        if (recordsPerPage != null && recordsPerPage > 0) {
            return recordsPerPage;
        }
        else {
            return Preferences.DEFAULT_RECORDS_PER_PAGE;
        }
    }

}

Почему я не могу инициализировать appInstanceProvider с @Inject Для этого я пишу блок J

Подход 1) Я звоню method_A с созданием нового объекта. Я go ответил на множество вопросов о переполнении стека и блогах.

Я понял, что новое ключевое слово не сможет помочь мне в дальнейшей работе с @ Inject

Подход 2) Я пытаюсь переопределить конфигурацию () и в этом связать appInstanceProvider. но все равно я получаю нулевое значение.

Пожалуйста, скажите мне любой новый подход или обходной путь.

1 Ответ

0 голосов
/ 22 января 2020

Так что @Inject работает, class A необходимо управлять. В этом классе не создавайте экземпляр DefaultGridPanel. Вместо этого вводите это также. Единственная проблема, которую я вижу, это использование параметризованного конструктора. Используйте сеттеры для установки этих значений.

...