为什么javax.annotation.processing.AbstractProcessor.init经常出现;同步;?

为什么javax.annotation.processing.AbstractProcessor.init经常出现;同步;?,java,synchronized,annotation-processing,Java,Synchronized,Annotation Processing,我看到很多类扩展了javax.annotation.processing.AbstractProcessor, 并重写init成员,使其同步 例如: 我想象这个函数是由javac编译器专门调用的,如果需要“同步”,我希望在Oracle的AbstractProcessor文档中看到一些关于它的信息(但我没有) 供参考 另外,虽然我看到initsynchronous,但我没有看到processsynchronous Oracle关于init成员的文档确实说,“如果在同一个对象上多次调用此方法,将抛出

我看到很多类扩展了
javax.annotation.processing.AbstractProcessor
, 并重写
init
成员,使其同步

例如:

我想象这个函数是由javac编译器专门调用的,如果需要“同步”,我希望在Oracle的
AbstractProcessor
文档中看到一些关于它的信息(但我没有)

供参考

另外,虽然我看到
init
synchronous,但我没有看到
process
synchronous

Oracle关于
init
成员的文档确实说,“如果在同一个对象上多次调用此方法,将抛出一个IllegalStateException。”但我看不出这是怎么回事。我想我可以想象这样一种场景:我们需要小心的是,只有一个线程成功地调用
init
(从而同步),然后只有成功的线程才能调用
进程。但是,如果没有文档支持,这是一个相当大的想象飞行

那么,有必要为继承自
AbstractProcessor
的类的
init
成员指定“同步”吗?为什么?如果有必要,为什么不需要使
进程
也同步呢

有人有什么见解吗


谢谢吉姆

只需注意:.@Slaw,好发现。非常感谢。我一直在看API文档,而不是源代码。我仍然想知道为什么,但现在至少我知道人们是从哪里得到它的。把它作为答案,我会把它标记为接受。只需注意:。@Slaw,好发现。非常感谢。我一直在看API文档,而不是源代码。我仍然想知道为什么,但现在至少我知道人们是从哪里得到它的。把它作为答案,我会把它标为接受。