maven reference to [method] is ambiguous

现象描述

项目在idea中可以正常打包,部署到服务器执行mvn clean package命令报错,报错信息如图所示
在这里插入图片描述
翻译过来大体就是submit方法是个模棱两可的引用,在看一下这个方法的声明

 ThreadPoolUtils.getInstance().getThreadPoolExecutor().submit(()->{
            while (true){
                Card card = null;
                try {
                    card = CARD_QUEUE.take();
                    log.info("队列的长度:{},\n 队列中包含card:{}",CARD_QUEUE.size(),card);
                    cardService.handlerCard(card);
                } catch (Exception e) {
                    log.info("处理error-> card:{}",card);
                    e.printStackTrace();
                }
            }
        });

这里采用了匿名内部类的写法,new了一个Runnable,在线程池提交了一个任务,问题就出现在这个匿名内部类身上。

线程池的submit方法截图

在这里插入图片描述
在这里插入图片描述
以上是重载的submit方法,如果是匿名内部类,编译是不知道到底创建的哪个类的对象,所以就报错了

解决方式

在这里插入图片描述
明确是Runnable的实例对象

这里还有一个例子

发布了16 篇原创文章 · 获赞 22 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章