В приведенном ниже классе я получаю ошибку компиляции с Java 8 из-за неоднозначного вызова this()
. Тем не менее, с Java 6 этот класс скомпилирован. Я знаю, что могу реорганизовать это с использованием заводских методов и т. Д., Но для фактического класса, где возникает проблема, я бы предпочел поддерживать текущий API на данный момент.Неопределенность конструктора с varargs в java 8
Может ли кто-нибудь подумать о способе устранения двусмысленности без изменения внешнего 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);
}
}
Спасибо за разъяснение и ссылку на JLS.Я не знал об этом многоступенчатом разрешении. – Ramses