【问题标题】:An error is reported if newFixedThreadPool does not return a value如果 newFixedThreadPool 没有返回值则报错
【发布时间】:2020-06-07 03:13:53
【问题描述】:
public class MyThreadPool {
    ExecutorService es= Executors.newFixedThreadPool(6);
    Executors.newFixedThreadPool(6);
}

 如果在IDEA中输入这样的代码,在第3行会报错:Cannot resolve symbol 'newFixedThreadPool'。为什么要写这样的代码?因为通常我会写A.Method1().var。当IDEA看到.var时会自动补充返回值。但不是在这种情况下。这是为什么呢?

【问题讨论】:

    标签: java intellij-idea executorservice


    【解决方案1】:

    在 Java 中,除了变量声明/初始化之外,任何语句都不能发生在方法或初始化块之外。

    ExecutorService es= Executors.newFixedThreadPool(6);
    

    这是一个声明。给它赋值是有效的。

    Executors.newFixedThreadPool(6);
    

    这不是声明。因此,在方法或初始化块之外不是有效的语句。

    【讨论】:

    • 感谢您的回答。也许我更想知道为什么 .var 在这种情况下在 IDEA 中不是自动完成的。
    • @David_Guan 对不起,我不明白你的问题是关于 IntelliJ IDEA 变量提取功能的。从我所见,可能是第二个语句不起作用,因为 IDEA 不想推断变量名称 - 这只是我的猜测。看看有没有更了解IDEA的人能解答一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    相关资源
    最近更新 更多