IntelliJ:将方法名称和签名提取到文本文件中

我想为我一直在写的类写一些外部文档。我想给出一个可用方法的简明清单,基本上与IntelliJ给出的“ Structure”视图相对应。我什至可以从视图中复制和粘贴,但是仅复制方法名称,而无需方法签名或返回值。

是否可以通过IntelliJ快速创建类的结构概述以用于文档编制?

谢谢!

编辑:看来我还没有完全清楚自己,对此我深表歉意。具体来说,我想记录以下类:https : //github.com/JULIELab/jcore-base/blob/2.3.0-SNAPSHOT/jcore-utilities/src/main/java/de/julielab/jcore /utility/JCoReAnnotationTools.java

我寻求的输出格式是一个文本文件,其外观应如下所示:

http://img3.mukewang.com/60a4dfe30001184e04580242.jpg

这是@Tiru指出的IntelliJ“结构”面板的屏幕截图。以纯文本形式获取此确切信息的最简单方法是什么?

JavaDoc是可能的,但相比起来比较冗长,需要进行一些后期处理。由于IntelliJ已经在创建这种简洁的概述,所以我希望有可能将其提取为文本。


温温酱
浏览 346回答 3
3回答

弑天下

您可以通过反射自己完成此操作。我做了一个开始。将其写入文件很容易。我将其留给读者作为练习。import java.lang.reflect.Method;import java.util.Arrays;import java.util.stream.Collectors;class Scratch {&nbsp; &nbsp; public static void main(String[] args) {&nbsp; &nbsp; &nbsp; &nbsp; StringBuilder stringMethods = findMethods(String.class);&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(stringMethods);&nbsp; &nbsp; }&nbsp; &nbsp; private static StringBuilder findMethods(Class clas) {&nbsp; &nbsp; &nbsp; &nbsp; StringBuilder builder = new StringBuilder();&nbsp; &nbsp; &nbsp; &nbsp; Method[] methods = clas.getMethods();&nbsp; &nbsp; &nbsp; &nbsp; for (Method method : methods) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(" ")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.append(method.getName())&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.append("(");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Class<?>[] parameterTypes = method.getParameterTypes();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for (int i = 0; i < parameterTypes.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Class<?> aClass = parameterTypes[i];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(aClass.getSimpleName());&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (i < parameterTypes.length - 1) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(", ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(")");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(": ")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.append(method.getReturnType().equals(Void.class) ? "void" : method.getReturnType().getSimpleName())&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.append(" ");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (method.getExceptionTypes().length > 0) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(" throws ")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;.append(Arrays.stream(method.getExceptionTypes()).map(Class::getSimpleName).collect(Collectors.joining(", ")));&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; builder.append(System.lineSeparator());&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; return builder;&nbsp; &nbsp; }}

智慧大石

是的,您可以使用快捷方式(cmd + F12 / ctrl + F12)轻松获取方法列表。这将为您提供方法和类变量的列表。您可以在文档中选择和使用它。例如:另一种方法是通过“侧边”窗格中的“结构”:或通过图表:示例图:

梦里花落0921

我不想成为必须这么说的人,但是...Javadoc是唯一可以可靠生成所需内容的可移植对象。最重要的事情要注意的是,你不要有自己编写的任何的Javadoc;&nbsp;您只需调用该工具,它就会生成您想要的。在Java的较新版本中,生成的Javadoc也是可搜索的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java