按方法名称(而不是行号)包含 Java 代码片段

按方法名称(而不是行号)包含 Java 代码片段

我目前正在编写包含大量源代码引用的文档,其中我通常一次包含一个完整的方法。

/*
...
*/

public class MyClass {

    public MyClass(String... someArguments) {
        /*
        ...
        */
    }

    @Override
    public String toString() {
        return "Some information on this specific instance.";
    }
}

目前,我会这样做,例如:

\lstinputlisting[firstnumber=13,firstline=13,lastline=16]{./path/MyClass.java}}

此源代码保存在并行编辑的单独文件中,导致我想要包含的方法移动或更改其行数。方法本身可能会被重写以包含其他行、注释等。

在文档开头进行简单的添加(例如额外导入)会导致所有对这些行的引用都需要更新。

理想情况下我想做这样的事情:

\importmethod{toString()}{./path/MyClass.java}

或者可能使用其他选项/语法:

\importmethod[annotations=true]{MyClass > toString()}{./path/MyClass.java}

只要方法签名不变,它就会一直寻找该方法的完整部分,包括注释、JavaDoc 注释等。

这是否已经存在于某个包中或者可以通过宏实现?

相关内容