当前位置: 首页 > 知识库问答 >
问题:

在IntelliJ中自动将通配符导入重构为显式导入(用于Scala/Java)

寿高阳
2023-03-14

考虑下面的代码。

是否可以使InteliJ自动将每个通配符导入重构为显式导入(无论范围内使用什么)?

例如导入scalatags.JsDom.all._导入scalatags.JsDom.all.{ol, li, div}

我的搜索表明这是不可能的,但也许我错了?

这是一个相关但不同的问题。

package app.client

import app.client.components.RootReactComp
import app.client.pages.spatutorial.components.GlobalStyles
import japgolly.scalajs.react.ReactDOM
import org.scalajs.dom
import org.scalajs.dom.raw.Element

import scala.scalajs.js
import scala.scalajs.js.annotation.JSExport
import scalacss.Defaults._
import scalatags.JsDom.all._
import scalatags.JsDom.implicits._
import scalatags.JsDom.svgAttrs.{fill, height, points, stroke, width,strokeWidth}
import scalatags.JsDom.svgTags._
@JSExport("Main")
  object Main extends js.JSApp {
@JSExport
         def main(): Unit = {
    //    log.warn("Application starting")
    //    // send log messages also to the server
    //    log.enableServerLogging("/logging")
    //    log.info("This message goes to server as well")

    // create stylesheet
    GlobalStyles.addToDocument()
    // tell React to render the router in the document body
    //ReactDOM.render(router(), dom.document.getElementById("root"))
    ReactDOM.render(RootReactComp.themedView(), dom.document.getElementById("joco"))
    val el: Element =dom.document.getElementById("svg-example")
     val l=     div( ol(
       li("Ordered List Item 1"),
       li("Ordered List Item 2"),
       li("Ordered List Item 3")
     )).render
  val s=    svg(height := "800", width := "500")(
                polyline(
                    points := "20,20 40,25 60,40 80,120 120,140 200,180",
                    fill := "none",
                    stroke := "black",
                    strokeWidth := "3"
                  )
           )
    el.appendChild(l);
  }

共有2个答案

关宏毅
2023-03-14

这是对我有用的解决方案 - 无论多么不理想:

  1. 优化导入
  2. 转到任何导入。*并按alt-enter(将出现一个菜单问题将*导入替换为单个导入),然后再次按Enter。在此处输入图像描述
越勇
2023-03-14

打开对话框

Preferences > Editor > Code Style > Scala

选择选项卡导入

在“使用导入的类计数”字段中,输入一个高得离谱的数字,例如 5000。

从现在开始,“优化导入”命令将把通配符解析为单个导入。

您可能还想激活

Editor > General > Auto Import > Scala > Optimize Imports on the Fly
 类似资料:
  • 问题内容: 如果我说: 我得到了ActionListener类。如果我说: 我得到的事件类 包括 ActionListener吗?或者更好: 我认为,如果像上两个示例中那样包含一个类,则可以有效地导入该类并继承其所有子类。但是,例如,当我仅使用最后一行时,Eclipse经常显示错误,表明它无法解析某些项目,并建议我 同时 包含java.awt和java.awt.event。 问题答案: Java中

  • 有什么想法可以解决这个问题吗?在Arch Linux上使用这个版本的Intellij IntelliJ IDEA社区版(Intellij-IDEA-Communition-Edition)2:2017.3.3-1

  • 我正在从GitHub导入我的Scala-SBT项目。我选择 导入后, IntelliJ不考虑作为Scala-SBT项目。 我没有找到我的项目,它在中为零。 如何直接从GitHub导入Scala SBT项目。 是不是强制要求我将本地和导入作为Scala SBT项目分为两个步骤? 或 我能从GitHub直接导入吗。

  • 这可能是一个简单的问题,但谷歌什么也没有回报。 我已经阅读了java中的帮助包-导入不工作 我仍然不明白为什么直接导入可以工作,但通配符不行。[编辑]我所说的类包是指一个类包。我对Java还是新手,所以我不知道语义学[编辑] 我有一个课程包:,当我尝试导入com时。公司* 我收到以下错误。 如果我导入明确表示我没有问题。 所以我想我有一个解决方案,但为了学习,有人能解释一下我为什么会看到这个问题吗

  • 是否有办法将GradleJava项目导入IntelliJ 2017.2. x并应用一些设置,例如 代码样式 vcs设置 从Gradle在项目层面? 我注意到例如Grails框架使用了idea-gradle-plugin,但这只能与Gradle任务结合使用。 我不想使用Gradle任务生成IntelliJ项目文件。每当我导入文件。 这可能吗?

  • 问题内容: 我正在研究一个小的Java程序,并且正在使用数组,所以我做到了: 后来,我开始扩展以前做过的事情,并决定要从用户那里得到输入,因此我添加了: 现在发生了一个想法。我知道我可以这样做: 然后,我只需要1条导入行,而不是2条(或者我最终需要很多条),但是导入中的通配符是否意味着它将从该包中导入 所有内容 ,而不管是否需要它,或者仅将选择性功能被拉? 我的直觉是编写更多代码,仅包含我 知道