private void visitx(GeneratorAdapter mv,List<String> strings){
  if (strings.size() == 1) {
    visitCase(strings.get(0));
    return;
  }
  for (int i=0; i < strings.size(); ++i) {
    String string=strings.get(i);
    Label label=new Label();
    visitString();
    mv.visitLdcInsn(string);
    mv.invokeVirtual(STRING_TYPE,Method.getMethod("boolean equals(Object)"));
    mv.visitJumpInsn(Opcodes.IFEQ,label);
    visitCase(string);
    mv.visitLabel(label);
  }
  visitDefault();
}

private void visitx ( GeneratorAdapter mv , List < String > strings ) { if ( strings . size ( ) == 1 ) { visitCase ( strings . get ( 0 ) ) ; return ; } for ( int i = 0 ; i < strings . size ( ) ; ++ i ) { String string = strings . get ( i ) ; Label label = new Label ( ) ; visitString ( ) ; mv . visitLdcInsn ( string ) ; mv . invokeVirtual ( STRING_TYPE , Method . getMethod ( "boolean equals(Object)" ) ) ; mv . visitJumpInsn ( Opcodes . IFEQ , label ) ; visitCase ( string ) ; mv . visitLabel ( label ) ; } visitDefault ( ) ; }
emit code for a string if - else block . if ( s . equals ( " collided_method1 " ) ) { visit ( s ) ; } else if ( s . equals ( " collided_method2 " ) ) { visit ( s ) ; } in the most common case of just one string , this degenerates to : visit ( s )
