簡體   English   中英

澤西島多個構造函數@inject

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM