You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Dongjoon Hyun (JIRA)" <ji...@apache.org> on 2019/04/02 14:39:00 UTC

[jira] [Resolved] (SPARK-27323) Use Single-Abstract-Method support in Scala 2.12 to simplify code

     [ https://issues.apache.org/jira/browse/SPARK-27323?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dongjoon Hyun resolved SPARK-27323.
-----------------------------------
       Resolution: Fixed
    Fix Version/s: 3.0.0

This is resolved via https://github.com/apache/spark/pull/24241

> Use Single-Abstract-Method support in Scala 2.12 to simplify code
> -----------------------------------------------------------------
>
>                 Key: SPARK-27323
>                 URL: https://issues.apache.org/jira/browse/SPARK-27323
>             Project: Spark
>          Issue Type: Improvement
>          Components: GraphX, Spark Core, SQL, Structured Streaming
>    Affects Versions: 3.0.0
>            Reporter: Sean Owen
>            Assignee: Sean Owen
>            Priority: Minor
>             Fix For: 3.0.0
>
>
> Scala 2.12 supports Single Abstract Method (SAM) syntax like Java 8. Using this would lightly simplify a lot of code where we define an anonymous inner class. E.g.
> {code}
> private[sql] val ordering = new Ordering[InternalType] {
>     override def compare(x: Array[Byte], y: Array[Byte]): Int = {
>       TypeUtils.compareBinary(x, y)
>     }
>   }
> {code}
> becomes:
> {code}
>   private[sql] val ordering = (x: Array[Byte], y: Array[Byte]) => TypeUtils.compareBinary(x, y)
> {code}
> There's a small improvement to readability, and probably a tiny benefit at runtime as these become lambdas in the JVM, not inner classes that have to be compiled and instantiated. (There's also a very small reduction in the chance that those inner classes are accidentally holding references to things we don't want them to.)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org