我目前正在将一个相当大的java项目移植到scala,所以不出所料我打了很多未解决的符号。我正在使用intellij,它有一个有用的工具来帮助你找到导入,你点击未解决的符号,然后点击alt-enter。这很棒,但根据我的经验,它的运作方式极不可靠。
有时它看起来像这样,你可以简单地点击输入(也许在一些下来之后)并导入你想要的东西:
但有时候看起来像这样,你必须先看看导入类选项,然后才能看到上一张图片中的菜单:
当你得到这个版本取决于你在选项上做什么,订单可能会有很大不同。我只是希望我能够一致地理解为什么IDE有时会做一件事而另一件事做其他事情......对行为或设置的任何见解我可以改变以使intellij以易于理解的方式运行?
第二个屏幕显示可用Intention actions的标准弹出窗口。每次调用Alt + Enter
时都会重新计算。
第一个屏幕上的选择器是由Auto Import弹出窗口提供的,你可以在File | Settings | Editor | General | Auto Import | Java | Show import popup for classes
中关闭它(它确实应该在Scala部分)。它尝试在后台查找未解析引用的适用类,并明确询问您是否要导入某些内容。
它更容易被发现并且通常更方便。例如,它允许您粘贴一段代码并添加所有相关的导入,而根本不移动插入符号。此弹出窗口可能会被取消,但应在任何击键后重新出现。
我不知道该告诉你什么,除了有时IntelliJ知道你想要导入一个给定的类,有时它会提供你创建所述对象。
在这种情况下,没有任何上下文,我会建议您创建一个对象/类ListBuffer
(因为谁说你想导入一个,此时?)或导入一个(这是IntelliJ在屏幕上提供的那个) 1)或仍需要在某处定义的值/变量或无参数方法(一种将被命名为ListBuffer的getter,其结果将存储在test
中)。
如果你一直想让IntelliJ想要导入一些东西,也许可以尝试指定对象的类型,如下所示:
val test: ListBuffer = ListBuffer()
希望这可以帮助。