Проблема в вашем примере кода не имеет ничего общего с CDI; Вы пытаетесь получить доступ к нестатическому полю (managedBeanClass
) из статического метода. Это невозможно в Java (ни с CDI, ни без него).
Кроме того, статические методы почти всегда указывают на проблему проектирования (*). Подобные статические методы делают вашу программу труднее тестировать и труднее изменять / поддерживать. Попробуйте придумать дизайн, который вообще не нуждается в статических методах ...
Итак, короткий ответ: не надо.
Но если ваш действительно должен иметь статический метод, вы можете использовать инжекцию конструктора и установить поле static из конструктора. Но будьте осторожны : это потенциально опасно, потому что каждый новый экземпляр будет снова устанавливать поле (что может вызвать условия гонки и непредвиденное поведение).
(см. Также: https://stackoverflow.com/a/22068572/10363398)
(*) За некоторыми исключениями, такими как методы в классе Math. Но это очень маленькие, чистые функции, которые не имеют побочных эффектов.