code: public static String getDesc(Class<?> c) {
  		StringBuilder ret = new StringBuilder();
  
  		while (c.isArray()) {
  			ret.append('[');
  			c = c.getComponentType();
  		}
  
  		if (c.isPrimitive()) {
  			String t = c.getName();
  			if ("void".equals(t))
  				ret.append(JVM_VOID);
  			else if ("boolean".equals(t))
  				ret.append(JVM_BOOLEAN);
  			else if ("byte".equals(t))
  				ret.append(JVM_BYTE);
  			else if ("char".equals(t))
  				ret.append(JVM_CHAR);
  			else if ("double".equals(t))
  				ret.append(JVM_DOUBLE);
  			else if ("float".equals(t))
  				ret.append(JVM_FLOAT);
  			else if ("int".equals(t))
  				ret.append(JVM_INT);
  			else if ("long".equals(t))
  				ret.append(JVM_LONG);
  			else if ("short".equals(t))
  				ret.append(JVM_SHORT);
  		} else {
  			ret.append('L');
  			ret.append(c.getName().replace('.', '/'));
  			ret.append(';');
  		}
  		return ret.toString();
  	}
docs: get class desc. boolean[].class => "[Z" Object.class =>
  "Ljava/lang/Object;"
  
  @param c
  class.
  @return desc.
  @throws NotFoundException