1

JavaParserは、Java ソース コード解析ツールです。ドキュメントを読みましたが、次のような完全な Java クラスのソースしか解析できないことがわかりました。

public class X {
    public void show(String id) {
        Question q = Quesiton.findById(id);
        aaa.BBB.render(q);
    }
}

しかし、メソッド宣言など、その一部のみを解析したい:

public void show(String id) {
    Question q = Quesiton.findById(id);
    aaa.BBB.render(q);
}

それを行う方法またはそれは可能ですか?そうでない場合、これを行うことができる他のツールはありますか?


アップデート

実際には、Java で有効な式を解析したいので、JavaParser で簡単に実行できます。

CompilationUnit unit = JavaParser.parse(codeInputStream);

addField(unit, parseField("public String name"));  // not possible now
4

1 に答える 1

2

メソッドをダミー クラスに含めて、通常どおり解析できるようです。提供した例では、次のように囲みます。

public class DUMMY_CLASS_FOO {

    // The string you're trying to parse (method or whatever)

}

次に、通常どおり解析し、解析中にダミー クラスを無視します。

アップデート:

あなたが提供したアップデートについては、試してキャッチすることができます

前のエンクロージャーがそれを行わなかった場合は、次のように囲みます。

public class DUMMY_CLASS_FOO {

    public void DUMMY_METHOD_FOO {

        // Anything here

    }
}

また、アクセス レベル修飾子 (パブリック、プライベートなど) を検索し、見つかった場合は最初の解決策を実行します。見つからない場合は、もう一方を実行します。

于 2012-11-26T05:56:53.960 に答える