早在2月,JetBrains宣布其10.5版本的主要重点是对Java 7的支持。 在这次采访中,我们与IntelliJ IDEA高级软件开发人员Anna Kozlova进行了交谈,以了解有关在IntelliJ IDEA 10.5中实现Java 7语言新功能的更多信息。
JAXenter: IntelliJ IDEA 10.5附带了对Java 7的全面支持。 在IntelliJ IDEA中实现最具挑战性的Java 7语言功能是什么?
Anna Kozlova:绝对可以在switch语句中支持String类型。 我们甚至早在IntelliJ IDEA 10上就实现了它,以便有更多时间完善其可用性。 确实,真正的挑战是将新的语言功能与IntelliJ IDEA的大量意图,检查,重构等相集成。 编写词法分析器或解析器不是火箭科学。 更新所有现有功能以适应更改更为重要且耗时,因此在添加新功能之后,所有功能仍将保持一致。
JAXenter:对您来说,Java 7支持将为IntelliJ IDEA用户带来什么主要好处?
安娜: IntelliJ IDEA一向擅长为您生成和完成复杂的代码片段。 现在,有了新的“语言语法糖”,甚至不再需要它。 因此,这就是好处–更少的打字,从而更快的编码。
JAXenter:对于使用IntelliJ IDEA 10.5迁移到Java 7的开发人员,您如何尝试管理学习曲线?
安娜:一如既往,IntelliJ IDEA提供批处理检查,以便于转换。 例如,可以在整个项目中运行“可以用<>替换显式类型”检查,并可以应用简化修复程序,它将新表达式转换为使用菱形。 当然,它将仅转换适用于钻石的用法。 我们还添加了其他检查,以将资源的“尝试/最终”压缩为“尝试”,将相同的分支折叠为多捕获尝试,等等。
JAXenter:自3月以来,在IntelliJ IDEA的早期访问版本中已提供Java 7支持。 支持仍在开发中的技术面临哪些挑战?
Anna:除了必须重做某些部分以外,我们最近面临的另一种情况是规范与Java编译器工作方式之间的差异。 我们决定遵循编译器,因为这是人们会使用的编译器。
JAXenter:而且,展望将来,IntelliJ IDEA的未来版本中对Java 8支持的计划是什么?
Anna:不需要太多计划就可以确定是否完全支持所有功能,并且我们将提供检查和重构以帮助将新功能引入代码库,就像我们在IntelliJ IDEA中使用Java 7一样。 10.5。 至于特定的功能和时间表,这完全取决于Java 8本身的开发方式。
翻译自: https://jaxenter.com/bringing-java-7-support-to-intellij-idea-10-5-103672.html