我正在学习斯坦福大学的算法课程(通过 Coursera)。本课程使用 IntelliJ 作为编程环境以及为本课程构建的一些库。特别是,它使用一些 StdOut 和 StdIn 库来处理标准输出和输入。
如果我只是编写代码并尝试通过终端编译它,它会抛出错误
错误:找不到符号;符号:变量StdOut。
我发现可以通过添加 import 语句来解决问题:
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
但是,一旦我添加这些语句,IntelliJ 就会删除它们。但是,如果我再次编译,它编译时不会出现错误,因此看起来 IntelliJ 正在导入这些库,然后删除这些语句。
问题是,如果我关闭并重新打开项目,然后再次编译,它会再次出现缺少符号的错误,这迫使我重新编写导入语句。
我的问题是,我不喜欢每次关闭和打开项目时都重新编写这些语句的想法,我只是想让 IntelliJ 停止搞乱我的代码并将语句保留在那里。由于我只是一个初学者,我想专注于学习算法,而不是与 IntelliJ 功能作斗争,所以我可以完全禁用任何类型的自动导入,我只会手动处理所有导入。
我进入了设置/编辑器/常规/自动导入,基本上禁用了所有内容,但 IntelliJ 仍然删除了我的导入语句。
感谢您的帮助!
它实际上并没有删除您的导入语句,只是折叠它们。换句话说,它只是不显示导入语句所在的行,主要是为了可读性。 您可以通过以下方式禁用此行为: 禁用以下功能:
Settings -> Editor -> General -> Code Folding -> Imports
但是,如果 intelliJ 确实删除了这些行,请禁用以下功能:
Settings -> Editor -> General -> Auto Import -> Optimize imports on the fly
我遇到了确切的问题,并且在
Optimize Imports
上禁用 Action on Save
对我有用。
Settings -> Tools -> Actions on Save -> Optimize Imports