【.com速译】无论你最熟悉的是Java、Scala还是其他JVM语言,总会有更多的JVM语言涌现,具有各种相关特性。最重要的是,在某些语言中总是有一些好的“基本”元素,而在其他语言中很难找到。这就是我们将这篇包含Groovy、Scala、Clojure、Kotlin和Java的一些最佳特性的浓缩文章放在一起的原因。解释它们之间的区别,以帮助您在项目开发中合理选择它们。1.是否检查异常Java中最有争议的特性是CheckedExceptions,CheckedExceptions会在编译时强制执行,需要某种排序过程。这意味着我们需要在方法中捕获或声明它。虽然有些开发者更喜欢忽略CheckedExceptions,但这个特性确实可以强制大家去处理异常,提高代码质量。因此,虽然它的知名度不高或在一定程度上可以忽略,但必须承认,它对提高编码思路还是有帮助的。Kotlin、Clojure、Groovy和Scala不支持检查异常。2.非空即真的Elvis运算符这里之所以选择Elvis运算符作为讨论的对象,是因为它是一种非常方便的默认值处理方式,有助于降低重构时出错的风险。在它的帮助下,我们可以轻松实现NullSafety,而无需重复表达式来进行条件和主动返回值测试。二元运算符elvis如果为真则返回第一个操作数,否则返回第二个操作数。Elvis运算符是三元运算符(在Java中也可用)的简化版本,它本身是用于为变量赋值的if/else分支表达式的简化版本。这是一个示例Groovy代码://三元运算符-在JavadefternaryOutput=(sampleText!=null)上工作相同?sampleText:'你好Groovy!'//猫王运算符在行动。我们必须阅读:'如果sampleText不为空,则将sampleText分配给elvisOuput,否则分配'VivaLasVegas!'到elvisOutput.defelvisOutput=sampleText?:'VivaLasVegas!'Kotlin也使用Elvis运算符来实现空引用中的空安全,但必须使用“?”.如果此运算符左侧的表达式不为空,Elvis将返回它。否则,它返回运算符右侧的表达式。整个过程可以简单翻译成下面一行:vall=b?.length?:-1Java没有提供Elvis运算符,但是它以类似的方式实现了NullSafety,所以在处理null时需要有所准备输入。您可以使用Optional
