gpt4 book ai didi

java - IntelliJ : Extract method names and signatures into text file

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:21 25 4
gpt4 key购买 nike

我想为我一直在编写的类编写一些外部文档。我想给出一个可用方法的简明列表,基本上对应于 IntelliJ 给出的“结构” View 。我什至可以从 View 中复制和粘贴,但是只会复制方法名称,而不会复制方法签名或返回值。

是否有任何快速方法可以从 IntelliJ 创建类的结构概述以用于文档目的?

谢谢!

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

我寻求的输出格式是一个文本文件,应如下所示: My wished output but in plain text

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

JavaDoc 是一种可能性,但相比之下相当冗长,需要相当多的后处理。由于 IntelliJ 已经在创建这种简洁的概述,我希望有可能将其提取为文本。

最佳答案

您可以通过反射(reflection)自己完成此操作。我做了一个小小的开始。将其写入文件很容易。我将把它作为练习留给读者。

import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.stream.Collectors;

class Scratch {
public static void main(String[] args) {
StringBuilder stringMethods = findMethods(String.class);
System.out.println(stringMethods);
}

private static StringBuilder findMethods(Class clas) {
StringBuilder builder = new StringBuilder();

Method[] methods = clas.getMethods();
for (Method method : methods) {
builder.append(" ")
.append(method.getName())
.append("(");

Class<?>[] parameterTypes = method.getParameterTypes();
for (int i = 0; i < parameterTypes.length; i++) {
Class<?> aClass = parameterTypes[i];
builder.append(aClass.getSimpleName());
if (i < parameterTypes.length - 1) {
builder.append(", ");
}
}

builder.append(")");

builder.append(": ")
.append(method.getReturnType().equals(Void.class) ? "void" : method.getReturnType().getSimpleName())
.append(" ");

if (method.getExceptionTypes().length > 0) {
builder.append(" throws ")
.append(Arrays.stream(method.getExceptionTypes()).map(Class::getSimpleName).collect(Collectors.joining(", ")));
}

builder.append(System.lineSeparator());

}
return builder;

}

}

关于java - IntelliJ : Extract method names and signatures into text file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51242361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com