Aparece el siguiente mensaje de error de tiempo de ejecución (junto con la primera línea del seguimiento de la pila, que apunta a la línea 94). Estoy tratando de descubrir por qué dice que no existe tal método.Interpretación del mensaje java.lang.NoSuchMethodError
java.lang.NoSuchMethodError:
com.sun.tools.doclets.formats.html.SubWriterHolderWriter.printDocLinkForMenu(
ILcom/sun/javadoc/ClassDoc;Lcom/sun/javadoc/MemberDoc;
Ljava/lang/String;Z)Ljava/lang/String;
at com.sun.tools.doclets.formats.html.AbstractExecutableMemberWriter.writeSummaryLink(
AbstractExecutableMemberWriter.java:94)
La línea 94 de writeSummaryLink se muestra a continuación.
PREGUNTAS
¿Qué quiere decir "ILcom" o "Z"?
Por qué hay cuatro tipos entre paréntesis (ILcom/sol/javadoc/ClassDoc; FCM/sol/javadoc/MemberDoc; Ljava/lang/cadena; Z) y uno después del paréntesis Ljava/lang/Cuerda; cuando el método printDocLinkForMenu claramente tiene cinco parámetros?
DETALLE DE CÓDIGO
El método writeSummaryLink es:
protected void writeSummaryLink(int context, ClassDoc cd, ProgramElementDoc member) {
ExecutableMemberDoc emd = (ExecutableMemberDoc)member;
String name = emd.name();
writer.strong();
writer.printDocLinkForMenu(context, cd, (MemberDoc) emd, name, false); // 94
writer.strongEnd();
writer.displayLength = name.length();
writeParameters(emd, false);
}
Aquí está el método 94 está llamando:
public void printDocLinkForMenu(int context, ClassDoc classDoc, MemberDoc doc,
String label, boolean strong) {
String docLink = getDocLink(context, classDoc, doc, label, strong);
print(deleteParameterAnchors(docLink));
}
+1 pero ¿qué es: 'ILcom/sun/javadoc/ClassDoc'? un intClassDoc? ¿O sería un error de copiar/pegar en ser: '[Lcom/sun/javadoc/ClassDoc'? o tal vez debería haber sido 'I; Lcom/sun/javadoc/ClassDoc' – OscarRyz
¿Sabes cómo es un tipo genérico? – OscarRyz
@Oscar: lo siento, no estoy seguro del tipo 'IL', esta es la primera vez que lo veo. Acerca de Generics, es solo azúcar sintáctico en tiempo de compilación y no aparece en bytecode. – BalusC