次のランタイム エラー メッセージが表示されます (行 94 を指すスタック トレースの最初の行と共に)。そのような方法が存在しないと言う理由を理解しようとしています。
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)
writeSummaryLink の 94 行目を以下に示します。
質問
「ILcom」または「Z」とはどういう意味ですか?
括弧内に 4 つの型 (ILcom/sun/javadoc/ClassDoc;Lcom/sun/javadoc/MemberDoc;Ljava/lang/String;Z) があり、括弧の後に 1 つの型がある理由 Ljava/lang/String; メソッドprintDocLinkForMenuに明らかに5つのパラメーターがある場合は?
コード
の詳細 writeSummaryLink メソッドは次のとおりです。
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);
}
94 行目で呼び出しているメソッドは次のとおりです。
public void printDocLinkForMenu(int context, ClassDoc classDoc, MemberDoc doc,
String label, boolean strong) {
String docLink = getDocLink(context, classDoc, doc, label, strong);
print(deleteParameterAnchors(docLink));
}