Я уже некоторое время борюсь с этим вопросом, поэтому я пришел сюда, чтобы поделиться им с вами. Во-первых у меня есть класс, в которым я хочу, чтобы впрыснуть объекта:@ inject не работает NPE
public class MyClass {
@javax.inject.Inject
private MyInterface interface
/.../
public void myMethod(){
interface.doTask();
}
MyInterface:
public interface MyInterface {
public abstract void doTask() throws Exception;
}
является интерфейс которым я связываю его реализации:
public class MyInterfaceImpl implements MyInterface{
@Inject
public MyInterfaceImpl(...) {
/.../
}
@Override
public void doTask() throws Exception{
/.../
}
в Конфигурация:
public class ApplicationConfig extends ResourceConfig {
private Config config = new Config();
public ApplicationConfig() {
super();
register(new MainBinder());
}
private class MainBinder extends AbstractBinder {
@Override
protected void configure() {
bind(MyInterfaceImpl.class).to(MyInterface.class).in(Singleton.class);
}
}
}
Так что, когда я запустить приложение и попытаться выполнить метод у меня есть NPE на:
interface.doTask();
Вуаля, я извиняюсь спросить, но мне нужна помощь по этому поводу, и я пытался быть как можно более общий, надеясь, что это не повлияет на ваше понимание. Спасибо заранее!
Edit: Забыл упомянуть, что класс MyClass() вызывается в другом классе, как это: new MyClass()
Так что я думаю, что проблема может быть там.
Что такое реализация ResourceConfig здесь? Это в Джерси? – jwells131313
Привет, да, это в Джерси. – hhelbawi