[英]Jersey multiple constructor @inject
我為球衣資源創建了兩個構造函數,但是只有一個可以調用,
這是示例代碼,
public class jerseyresoure {
private String name;
private int age;
@Inject
public jerseyresoure (String name){
this.name = name;
}
@Inject
public jerseyresoure (int age){
this.age= age;
}
}
參數為int的get cosntructor被成功調用,在這種情況下您可以幫我嗎?
根據CDI規范,使用@Inject
注釋一個以上的構造函數是非法的(請參閱CDI規范的3.9節):
如果Bean類未使用@Inject顯式聲明構造函數,則不接受任何參數的構造函數為Bean構造函數。
如果一個bean類的注釋@Inject有多個構造函數,則容器將自動檢測到該問題並將其視為定義錯誤。
Bean構造函數可以具有任意數量的參數。 bean構造函數的所有參數都是注入點。
因此,您可以執行以下操作:
public class jerseyresoure {
private String name;
private int age;
@Inject
public jerseyresoure (String name, int age){
this.name = name;
this.age = age;
}
}
我假設您正在使用生產者方法,以便注入值( 名稱和年齡 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.