在尝试导入未解析的符号时,有人能解释intellij中alt-enter的行为吗?

问题描述 投票:1回答:2

我目前正在将一个相当大的java项目移植到scala,所以不出所料我打了很多未解决的符号。我正在使用intellij,它有一个有用的工具来帮助你找到导入,你点击未解决的符号,然后点击alt-enter。这很棒,但根据我的经验,它的运作方式极不可靠。

有时它看起来像这样,你可以简单地点击输入(也许在一些下来之后)并导入你想要的东西:

Sometimes it looks like this

但有时候看起来像这样,你必须先看看导入类选项,然后才能看到上一张图片中的菜单:

or this

当你得到这个版本取决于你在选项上做什么,订单可能会有很大不同。我只是希望我能够一致地理解为什么IDE有时会做一件事而另一件事做其他事情......对行为或设置的任何见解我可以改变以使intellij以易于理解的方式运行?

scala intellij-idea
2个回答
2
投票

第二个屏幕显示可用Intention actions的标准弹出窗口。每次调用Alt + Enter时都会重新计算。

第一个屏幕上的选择器是由Auto Import弹出窗口提供的,你可以在File | Settings | Editor | General | Auto Import | Java | Show import popup for classes中关闭它(它确实应该在Scala部分)。它尝试在后台查找未解析引用的适用类,并明确询问您是否要导入某些内容。

enter image description here

它更容易被发现并且通常更方便。例如,它允许您粘贴一段代码并添加所有相关的导入,而根本不移动插入符号。此弹出窗口可能会被取消,但应在任何击键后重新出现。


0
投票

我不知道该告诉你什么,除了有时IntelliJ知道你想要导入一个给定的类,有时它会提供你创建所述对象。

在这种情况下,没有任何上下文,我会建议您创建一个对象/类ListBuffer(因为谁说你想导入一个,此时?)或导入一个(这是IntelliJ在屏幕上提供的那个) 1)或仍需要在某处定义的值/变量或无参数方法(一种将被命名为ListBuffer的getter,其结果将存储在test中)。

如果你一直想让IntelliJ想要导入一些东西,也许可以尝试指定对象的类型,如下所示:

val test: ListBuffer = ListBuffer()

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.