2011-01-20 64 views
0

让我们假设我有2个不同包中的2个类。javac注释处理器:处理依赖类

例:

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的过程,这将汇编每个类的/组织/例子/ **

当的javac编译ClassA的它会找到ClassB的形成依赖,因此必须编译ClassB的了。 ClassB会被处理吗?

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

谢谢!

回答

1

那么,答案很简单:如果ClassB在源路径中,那么它将被处理。如果没有,它不会。 ClassA从ClassB中类方法的事实不会改变任何事情。

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