美文网首页
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