code: public static String desc2name(String desc) {
  		StringBuilder sb = new StringBuilder();
  		int c = desc.lastIndexOf('[') + 1;
  		if (desc.length() == c + 1) {
  			switch (desc.charAt(c)) {
  			case JVM_VOID: {
  				sb.append("void");
  				break;
  			}
  			case JVM_BOOLEAN: {
  				sb.append("boolean");
  				break;
  			}
  			case JVM_BYTE: {
  				sb.append("byte");
  				break;
  			}
  			case JVM_CHAR: {
  				sb.append("char");
  				break;
  			}
  			case JVM_DOUBLE: {
  				sb.append("double");
  				break;
  			}
  			case JVM_FLOAT: {
  				sb.append("float");
  				break;
  			}
  			case JVM_INT: {
  				sb.append("int");
  				break;
  			}
  			case JVM_LONG: {
  				sb.append("long");
  				break;
  			}
  			case JVM_SHORT: {
  				sb.append("short");
  				break;
  			}
  			default:
  				throw new RuntimeException();
  			}
  		} else {
  			sb.append(desc.substring(c + 1, desc.length() - 1)
  					.replace('/', '.'));
  		}
  		while (c-- > 0)
  			sb.append("[]");
  		return sb.toString();
  	}
docs: desc to name. "[[I" => "int[][]"
  
  @param desc
  desc.
  @return name.