考慮以下兩組方法。第一個被接受,第二個被拒絕爲模棱兩可。唯一的區別是使用int和Integer。對象和基元類型的模糊可變參數方法
是否有特別需要拒絕第二個?這意味着在拳擊後接受它(這將導致第一組)有問題。我在這裏錯過什麼?
從我的角度來看,Java編譯器在這裏太侷限了。
套裝1:
public void test(Object... values) {}
public void test(Integer x, Object... values) {} // difference here
public void b() {
test(1, "y"); // accepted
}
盤2:
public void test(Object... values) {}
public void test(int x, Object... values) {} // difference here
public void b() {
test(1, "y"); // marked as ambiguous
}
集2產生編譯器錯誤:
error: reference to test is ambiguous
test(1, "y"); // marked as ambiguous
^
both method test(Object...) in T and method test(int,Object...) in T match
的Java 1.8,Eclipse的氧氣
Set 1和Set 2的方法在同一個類中? –
@RafaelVieiraCoelho當然不是。 – Kayaman
同一班。我只是編輯班級在兩者之間進行更改。 –