Возможно ли вложить в Java более 5 «условных операторов». Я спрашиваю, потому что кажется, что я вызываю исключение компилятора, когда я пытаюсь скомпилировать этот код:
public Object getValue() {
return
number != null ? number :
string != null ? string :
bool != null ? bool :
date != null ? date :
list != null ? list :
null;
}
Я сузил его до этого кода, потому что, если я закомментирую последнюю строку, он, похоже, скомпилируется нормально.
public Object getValue() {
return
number != null ? number :
string != null ? string :
bool != null ? bool :
date != null ? date :
// list != null ? list :
null;
}
Кто-нибудь еще знает, является ли это ограничением Java-компилятора, или я делаю неверные выводы, было бы здорово, если бы кто-то еще мог попытаться воспроизвести это. Если кому-то интересно, я воспроизвел и выложил Stack Trace от компилятора здесь https://gist.github.com/919284.
Обратите внимание, что это, скорее всего, ошибка в компиляторе, а не в моем коде, поскольку в выходных данных говорится "Пожалуйста, сообщите об ошибке на сайте Java Developer Connect" (или что-то подобное). Я спрашиваю здесь, потому что я не уверен, что этот отчет об ошибке будет содержать.
EDIT:
Крис Л. воспроизвел это, см. Его ответ