【问题标题】:How to prevent IntelliJ from deleting import statements如何防止 IntelliJ 删除导入语句
【发布时间】:2019-01-04 05:38:52
【问题描述】:

我正在学习斯坦福大学的算法课程(通过 Coursera)。本课程使用 IntelliJ 作为编程环境以及为课程构建的一些库。特别是,它使用一些 StdOut 和 StdIn 库来处理标准输出和输入。

如果我只是编写代码并尝试通过终端编译它,它会抛出错误

错误:找不到符号;符号:变量 StdOut。

我发现问题可以通过添加import语句来解决:

import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;

但是,IntelliJ 会在我添加这些语句后立即删除它们。但是,如果我再次编译,它编译没有错误,所以看起来 IntelliJ 正在导入这些库,然后删除语句。

问题是,如果我关闭并重新打开项目,然后再次编译,它会再次出现缺少符号的错误,这迫使我重新编写导入语句。

我的问题是,我不喜欢每次关闭和打开项目时都重写这些语句的想法,我只想让 IntelliJ 停止弄乱我的代码并将语句保留在那里。由于我只是一个初学者,我想专注于学习算法,而不是对抗 IntelliJ 功能,所以我可以完全禁用任何类型的自动导入,我将手动处理所有导入。

我去了设置/编辑器/常规/自动导入并基本上禁用了所有内容,但 IntelliJ 仍然删除了我的导入语句。

感谢您的帮助!

【问题讨论】:

  • 请提供一个示例项目进行检查。原因可能是 - 当您从 IDE 构建它(不需要导入语句时)并形成终端时,使用了不同的环境上下文。
  • 谢谢,我解决了。出于本课程的目的,我应该下载他们为与课程库一起使用而构建的基础项目之一,并简单地添加新类来编写练习代码。我这样做了,一切正常。我所做的是从头开始创建一个新项目。可能有一种方法可以从头开始制作项目并使其与课程库一起使用,但我暂时不会担心。

标签: java intellij-idea


【解决方案1】:

实际上并没有删除您的导入语句,只是folding 它们。换句话说,它只是不显示导入语句所在的行,主要是为了便于阅读。 您可以通过以下方式禁用此行为: 禁用以下:

Settings -> Editor -> General -> Code Folding -> Imports

但是,如果 intelliJ 真的删除了这些行,请禁用以下内容:

Settings -> Editor -> General -> Auto Import -> Optimize imports on the fly

【讨论】:

  • 谢谢!我一开始也这么认为。但事实并非如此,它实际上是在删除它们。我检查了设置并禁用了代码折叠。如果它们只是折叠起来,我认为我不需要在重新打开项目时再次插入这些行。
  • 谢谢,我已经这样做了,程序仍然会删除它们。我已经关闭了程序并重新启动它。它比我更糟糕,我每次编译时都必须添加这些行。如果我添加这些行,它们将被删除,但编译成功完成。但是如果我再次编译,我会再次收到错误,我不得不再次添加这些行。如果我不能解决这个问题,我可能不得不从头开始重新安装 IntelliJ。
  • 确实很奇怪。如果重新安装也不起作用,请通知我们。
  • 重新安装后问题依然存在。该程序确实从工具/重新编译成功编译,即使没有添加导入语句。但是当我使用终端时编译失败,这是我想要做的。即使使用终端,在添加导入语句后编译也可以工作,但是因为这些行被立即删除,所以我每次编译时都必须重新添加它们。我的猜测是,这是课程预打包的编程环境中的一个错误。不过感谢您的帮助!
  • 您是否尝试过导入未使用的包?它不应该删除它。这是否意味着您没有从其实际网站下载 IntelliJ?如果您没有尝试从他们的实际网站安装它。如果你正在考虑切换编辑器,我推荐 Atom 或 Sublime Text。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 2012-06-29
  • 2014-09-24
相关资源
最近更新 更多