kotlin 和 AbstractProcessor

2018-10-09  本文已影响12人  pdog18

我们在使用自定义AbstractProcessor 时,会通过System.out.println(); 来输出日志帮助调试。

然后在其他项目里通过annotationProcessor project来引入这个 AbstractProcessor

一切都很正常。在Terminal 能够正常的输出调试日志。

但是当我们的项目使用了kotlin的时候,就发生了一些改变。

你会发现你的System.out.println(); 不再生效了,日志一直不出现,让人抓狂。

及时通过建议将annotationProcessor 替换成kapt 也没有什么卵用。

解决方法很简单,就是将你的System.out.println(); 替换掉,使用正确的Messager对象来输出日志。


    private Messager messager;

    @Override
    public synchronized void init(ProcessingEnvironment processingEnvironment) {
        super.init(processingEnvironment);
        messager = processingEnvironment.getMessager();
    }

    private void log(String msg) {
        //System.out.println(msg);
        messager.printMessage(Diagnostic.Kind.OTHER, msg);
    }
上一篇 下一篇

猜你喜欢

热点阅读