javac注释处理器:处理依赖类

时间:2011-01-20 19:55:46

标签: java annotations javac processor

让我们假设我在2个不同的包中有2个类。

前:

package org.example;
public ClassA {
    @MyAnnotation
    public void xpto() {
      ClassB.staticMethod();
    }
}

package org.another;
public ClassB {

    public void staticMethod() {
           //
    }
    @MyAnnotation     
    public x1() {
    }
}

在ClassA中,有一个引用ClassB静态方法的方法。

现在我有一个带有注释处理器的javac进程,它将编译/ org / example / **的每个类

当javac编译ClassA时,它会发现ClassB是依赖的,所以它也必须编译ClassB。是否会处理ClassB?

我猜不是,我需要它,你知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

嗯,答案很简单:如果ClassB在源路径中,那么它很好地被处理。如果没有,它就不会。 ClassA类是ClassB的一个方法,不会改变任何东西。

最简单的检查方法是打印给予处理器的注释类列表。