Есть ли смысл собирать отзывы о JSR / JEP, прежде чем вводить их в качестве предложения? - PullRequest
4 голосов
/ 09 июля 2019

Я намерен запустить JEP / JSR, чтобы ввести альтернативный оператор доступа в Спецификацию языка Java. Я выяснил, как могло бы выглядеть предложение, и теперь я хочу собрать отзывы о нем (например, если я 999-й человек, предложивший это). Я хочу сделать это предпочтительно перед тем, как фактически начать предложение. Однако, похоже, нет ни форума, ни форума, посвященного openJDK или процессу сообщества Java. По крайней мере, я не смог ничего найти. Однако я нашел канал IRC #openjdk, но, кроме людей, входящих и выходящих, там, похоже, нет связи.

Если я хочу пойти наименее инвазивным / навязчивым способом донести свою идею до других людей, какой путь я бы выбрал? Нет ли альтернативы, кроме фактического запуска JSR и ожидания активной обратной связи?

Помимо самого вопроса , потому что его спросили, какова точная идея:

Язык программирования Java позволяет связывать выражения для того, чтобы обозначить поток операций в более широком выражении и для облегчения доступа к «глубоким» значениям.

String fieldText = tableProvider.getTable(tableKey).getRow(rowKey).getField(columnKey).text;

Однако, если средство доступа '.' пытается получить доступ к нулевому объекту, Выдается исключение NullPointerException, что делает любой непроверенный доступ рискованным. Даже если запасной вариант для такого случая - просто null или статическое примитивное значение, разработчик необходимо явно обрабатывать все возможные сценарии NullPointer. В качестве альтернативы они обычно можно поймать NullPointerException, который требует возвращаемое значение для хранения в переменной, определенной в области видимости за пределами блок try-catch, поэтому к нему можно будет получить доступ вне оператора try-catch. Однако это также ловит NullPointerExceptions, брошенный в любой доступный метод, который может быть не предназначен.

Чтобы избежать этого, предлагается новый метод доступа, который отменяет разрешение связанного выражения, в случае, если средство доступа получит доступ к нулевому объект, и вместо этого возвращается к null или к указанному значению по умолчанию.

String fieldText = tableProvider.getTable(tableKey)°getRow(rowKey)°getField(columnKey)°text;

int i = tableProvider.getTable(tableKey)°getRow(rowKey)°getField(columnKey)°index ?: (-1);

В этом примере, если какой-либо из методов вызывает (getTable, getRow или getField) return null, все цепочечное выражение завершится и вернуть null (или -1), а не выдавать исключение NullPointerException.

Выше приведен раздел «Мотивация» простого JEP / JSR, который я написал. ° - это просто заполнитель для любого оператора, который не вызовет произвольной интерпретации. Фактический черновик также определяет кучу не целей, которые, среди прочего,

  • Не нужно обрабатывать null в местах, где null не ожидается.
  • Устаревать исключение NullPointerException.
  • Обычно заменяют '.' сбруя.
  • Поймать уже сгенерированные исключения NullPointerException.
  • Как правило, в качестве возвращаемого типа заменить класс Optional в его функции.

Edit: Похоже, что концепция, которую я предлагаю, уже является частью kotlin (среди прочих), но состоит из двух функций: «оператор безопасной навигации» и «оператор elvis». На первом я хочу сосредоточиться.

1 Ответ

2 голосов
/ 09 июля 2019

JEP 1 говорит:

Ожидается, что [...] типичное новое предложение начнется как идея, неофициально изученная и вытесненная в конкретной группе,затем проектируется в качестве JEP для дальнейшего рассмотрения и комментирования, затем одобряется руководителем этой группы, а затем соответствующим региональным руководителем, а затем направляется на утверждение руководителю OpenJDK.Обсуждаемые в ходе обсуждения обсуждения обычно проводятся по электронной почте, но обзорные собрания могут быть полезны для особо крупных или спорных предложений.

Так что в основном идею следует обсуждать по электронной почте (обычно это означает, чтов списке рассылки).Существует большой список списков рассылки Java на различные темы.Может быть, вы найдете там группу, связанную с вашим предложением.

Я думаю, что большинство языковых изменений спонсируется группой компиляторов , поэтому их список рассылки мог бы стать хорошей отправной точкой для получения дальнейших указаний о том, где обсуждать, или даже инициировать обсуждение там.

...