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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章