美文网首页
kotlin 和 AbstractProcessor

kotlin 和 AbstractProcessor

作者: pdog18 | 来源:发表于2018-10-09 20:11 被阅读12次

我们在使用自定义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);
    }

相关文章

网友评论

      本文标题:kotlin 和 AbstractProcessor

      本文链接:https://www.haomeiwen.com/subject/sviyaftx.html