Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<blockquote> <p><em>What does "ILcom" or "Z" mean?</em></p> </blockquote> <p>Those are mapping types for native types. You can find an overview <a href="http://en.wikipedia.org/wiki/Java_Native_Interface#Mapping_types" rel="noreferrer">here</a>.</p> <pre> Native Type | Java Language Type | Description | Type signature ---------------+--------------------+------------------+---------------- unsigned char | jboolean | unsigned 8 bits | Z signed char | jbyte | signed 8 bits | B unsigned short | jchar | unsigned 16 bits | C short | jshort | signed 16 bits | S long | jint | signed 32 bits | I long long | jlong | signed 64 bits | J __int64 | | | float | jfloat | 32 bits | F double | jdouble | 64 bits | D </pre> <blockquote> <p>In addition, the signature <code>"L fully-qualified-class ;"</code> would mean the class uniquely specified by that name; e.g., the signature <code>"Ljava/lang/String;"</code> refers to the class <code>java.lang.String</code>. Also, prefixing <code>[</code> to the signature makes the array of that type; for example, <code>[I</code> means the int array type.</p> </blockquote> <hr> <p>As to your next question:</p> <blockquote> <p><em>Why there are four types in parentheses (ILcom/sun/javadoc/ClassDoc;Lcom/sun/javadoc/MemberDoc;Ljava/lang/String;Z) and one after the parentheses Ljava/lang/String; when the method printDocLinkForMenu clearly has five parameters?</em></p> </blockquote> <p>Because you're not running the code you think you're running. The <em>actually</em> running code is trying to call exactly that method described in the error message, with actually five parameters (the <code>I</code> should be counted separately) and a <code>String</code>return type, but this method doesn't exist in the runtime classpath (while it was available in the compiletime classpath), hence this error. Also see the <a href="http://java.sun.com/javase/6/docs/api/java/lang/NoSuchMethodError.html" rel="noreferrer"><code>NoSuchMethodError</code> javadoc</a>: </p> <blockquote> <p>Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.</p> <p>Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed. </p> </blockquote> <p>So, verify if you're actually running the right version of the code as you've posted in your question and are using the right dependencies in the runtime classpath and not having duplicate different versioned libraries in the classpath.</p> <p><strong>Update</strong>: the exception signifies that the <em>actual</em> code is (implicitly) trying to use the method like as follows:</p> <pre><code>String s = printDocLinkForMenu(context, cd, (MemberDoc) emd, name, false); </code></pre> <p>Because it is expecting a <code>String</code> outcome while it is declared <code>void</code>.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload