2011-01-20 62 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中類方法的事實不會改變任何事情。

最簡單的檢查方法是打印提供給處理器的帶註釋類的列表。