我有以下枚舉具有多種構造的工作:Java的構造失敗,可變參數
public enum Route
{
HOMEPAGE("", null, UserType.GUEST);
Route(String baseName, String langFile, Entity entity) {}
Route(String langFile, Entity entity) {}
Route(String langFile, UserType... availability) {}
Route(String baseName, String langFile, UserType... availability) {}
}
在這種情況下,我很清楚地調用構造函數4時,我定義HOMEPAGE
。但問題是,我收到錯誤:Cannot resolve constructor Route(java.lang.String, null, com.foo.UserType)
。
如果我或者刪除從構造,即在varags所以它看起來像:
Route(String baseName, String langFile, UserType availability) {}
或者,如果我定義時HOMEPAGE
,即改變空:
HOMEPAGE("", "", UserType.GUEST);
然後,它的工作原理。但是這對我來說沒有意義。爲什麼它沒有檢測到我在調用第4個構造函數?
我看...很棘手。感謝您澄清它。如果我將null轉換爲String,那麼我的構造函數仍然會接受null作爲該參數的值? –
@ClickUpvote,是的,它將保持'空'。 – hmjd
只是澄清,我不明白,因爲第三個構造函數只有兩個參數,並且調用顯然傳遞了三個參數......如何將調用誤認爲第三個構造函數? – Gladhus