[ https://issues.apache.org/jira/browse/KAFKA-3768?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Satendra Kumar updated KAFKA-3768: ---------------------------------- Issue Type: Improvement (was: Bug) > Replace all pattern match on boolean value by if/elase block. > ------------------------------------------------------------- > > Key: KAFKA-3768 > URL: https://issues.apache.org/jira/browse/KAFKA-3768 > Project: Kafka > Issue Type: Improvement > Reporter: Satendra Kumar > Priority: Minor > Original Estimate: 1h > Remaining Estimate: 1h > > Scala recommend use if/else clock instead of pattern match on boolean > values. > For example: > class Comparasion { > def method1(flag: Boolean): String = { > flag match { > case true => "TRUE" > case false => "FALSE" > } > } > def method2(flag: Boolean): String = { > if(flag) { > "TRUE" > }else { > "FALSE" > } > } > } > Byte code comparison between method1 and method2: > scala>javap -cp Comparasion > Compiled from "<console>" > public class Comparasion { > public java.lang.String method1(boolean); > Code: > 0: iload_1 > 1: istore_2 > 2: iconst_1 > 3: iload_2 > 4: if_icmpne 13 > 7: ldc #9 // String TRUE > 9: astore_3 > 10: goto 21 > 13: iconst_0 > 14: iload_2 > 15: if_icmpne 23 > 18: ldc #11 // String FALSE > 20: astore_3 > 21: aload_3 > 22: areturn > 23: new #13 // class scala/MatchError > 26: dup > 27: iload_2 > 28: invokestatic #19 // Method > scala/runtime/BoxesRunTime.boxToBoolean:(Z)Ljava/lang/Boolean; > 31: invokespecial #23 // Method > scala/MatchError."<init>":(Ljava/lang/Object;)V > 34: athrow > public java.lang.String method2(boolean); > Code: > 0: iload_1 > 1: ifeq 9 > 4: ldc #9 // String TRUE > 6: goto 11 > 9: ldc #11 // String FALSE > 11: areturn > public Comparasion(); > Code: > 0: aload_0 > 1: invokespecial #33 // Method > java/lang/Object."<init>":()V > 4: return > } > method1 have 23 line of byte code and 6 line byte code. Pattern match are > more expensive comparison to if/else block. -- This message was sent by Atlassian JIRA (v6.3.4#6332)