Я использую CDI в качестве рамки для инъекций, но я нашел некоторые ограничения в ее использовании, и это один из них. Я пытаюсь инициализировать создание экземпляра bean со значениями runtime. Пример:
@RequestScoped
public class MyNumber {
int number;
public MyNumber(int number) {
this.number = number;
}
public String toString() {
return "Your number is: " + number;
}
}
public class UseNumber {
@Inject
Instance<MyNumber> number;
public void doStuff() {
int a = 8;
MyNumber mN = number.select(a).get(); // ?? - Obviously this does not work.
System.out.print(mN); // Should print: "Your number is: 8"
}
}
Обратите внимание, что "a" является константой в примере, но на практике это переменная; Я уточняю это, поэтому вы не отправляете ответ с помощью @Producer
, чтобы ввести значение, а затем в конструктор MyNumber
.
Теперь у кого-нибудь есть представление о том, как я могу это сделать?