在将JSR / JEP作为建议输入之前,是否有有意义的方法来收集其反馈?

时间:2019-07-09 07:52:26

标签: java specifications jsr jep

我打算启动JEP / JSR,以将替代访问运算符引入Java语言规范。我已经确定了该提案的外观,现在我想收集有关该提案的反馈(例如,如果我是第999位提出这一建议的人)。我最好在实际开始提案之前进行此操作。但是,在openJDK或Java Community Process周围似乎没有论坛或委员会。至少我找不到任何东西。但是,我确实找到了一个#openjdk IRC频道,但是除了人们进出外,那里似乎没有任何交流。

如果我想采用侵入性最小的方式将自己的想法传达给其他人,我会选择哪种方式?除了实际启动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)返回null,整个链接表达式将终止   并返回null(或-1),而不是抛出NullPointerException。

以上是我撰写的普通JEP / JSR的动机部分。 °只是任何运算符的占位符,不会引起任意解释。实际的草稿还指定了一堆目标,其中包括

  
      
  • 不必在预计null的地方处理null
  •   
  • 弃用NullPointerException。
  •   
  • 通常替换为“。”访问器。
  •   
  • 捕获已引发的NullPointerExceptions。
  •   
  • 通常将Optional类替换为返回类型。
  •   

编辑: 我所建议的概念似乎已经成为kotlin的一部分(其中包括),但包含两个功能:“安全导航操作员”和“ elvis操作员”。前者是我要关注的重点。

1 个答案:

答案 0 :(得分:2)

JEP 1说:

  

预计典型的新提案将以非正式讨论的想法开始,然后在特定小组内进行讨论,然后作为JEP起草以供进一步审核和评论,然后由该小组的负责人批准,然后相关区域负责人,然后提交给OpenJDK负责人接受。通常,讨论过程将通过电子邮件进行,但是复审会议对于特别大或有争议的建议可能很有用。

因此,基本上,该想法应通过电子邮件进行讨论(通常这意味着在邮件列表中)。 Java mailing lists的各个主题很大。也许您在那里找到与您的提案相关的小组。

我认为大多数语言更改都是由the compiler group赞助的,因此他们的邮件列表可能是一个很好的起点,以获取有关在哪里讨论甚至在那里引发讨论的进一步指导。