W klasie poniżej dostaję błąd kompilacji w Javie 8 z powodu niejednoznacznego wywołania this()
. Z Javą 6 ta klasa jest jednak dobrze skompilowana. Wiem, że mógłbym to zmienić za pomocą metod fabrycznych i takich, ale dla rzeczywistej klasy, w której występuje problem, zdecydowanie wolałbym utrzymać obecny interfejs API na teraz.Niejednoznaczność konstruktora przy użyciu varargs w java 8
Czy ktoś może wymyślić sposób na rozwiązanie niejasności bez zmiany zewnętrznego interfejsu API?
public class Vararg8 {
public Vararg8(final Object... os) {}
public Vararg8(final boolean b,
final String s,
final int... is) {}
public Vararg8() {
this(true, "test", 4, 5, 6);
}
}
Dzięki za wyjaśnienia i odniesienie do JLS.Nie wiedziałem o tej wielostopniowej rozdzielczości. – Ramses