为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

温温酱 2021-05-13 14:04:10
我想为我一直在写的类写一些外部文档。我想给出一个可用方法的简明清单,基本上与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我寻求的输出格式是一个文本文件,其外观应如下所示:这是@Tiru指出的IntelliJ“结构”面板的屏幕截图。以纯文本形式获取此确切信息的最简单方法是什么?JavaDoc是可能的,但相比起来比较冗长,需要进行一些后期处理。由于IntelliJ已经在创建这种简洁的概述,所以我希望有可能将其提取为文本。
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

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


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;


    }


}



查看完整回答
反对 回复 2021-05-19
?
智慧大石

TA贡献1946条经验 获得超3个赞

是的,您可以使用快捷方式(cmd + F12 / ctrl + F12)轻松获取方法列表。这将为您提供方法和类变量的列表。您可以在文档中选择和使用它。

例如:

//img1.sycdn.imooc.com//60a4e0000001a6ab03180167.jpg

另一种方法是通过“侧边”窗格中的“结构”:


//img1.sycdn.imooc.com//60a4e00c0001e80403080321.jpg

或通过图表:


//img1.sycdn.imooc.com//60a4e0180001539203200235.jpg

示例图:


//img1.sycdn.imooc.com//60a4e0220001013202980219.jpg

查看完整回答
反对 回复 2021-05-19
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我不想成为必须这么说的人,但是...

Javadoc是唯一可以可靠生成所需内容的可移植对象。

最重要的事情要注意的是,你不要自己编写的任何的Javadoc; 您只需调用该工具,它就会生成您想要的。

在Java的较新版本中,生成的Javadoc也是可搜索的。


查看完整回答
反对 回复 2021-05-19
  • 3 回答
  • 0 关注
  • 345 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信