【问题标题】:Using IntelliJ, how can i determine whether particular function stems from Java or Scala使用 IntelliJ,我如何确定特定函数是来自 Java 还是 Scala
【发布时间】:2012-12-09 20:42:41
【问题描述】:

我们来看看

val m = "Scala is fun"

IntelliJ 帮助找出很多可以用这个完成的事情

有没有办法让我知道这些函数中哪些来自 Scala,哪些来自 Java?

【问题讨论】:

  • AFAIK,所有的粗体都来自Java。 “比较”和“eq”不是。
  • 嗯 .. 很好的观察,但演示似乎不一致。返回UnitgetBytes 显然是Scala 版本,但它以粗体显示。
  • 所有方法描述都已更改为 Scala 类型。 Java 中没有 CharIntArray[]AnyRef 类型。 Scala 中的类型是 Unit,因为它没有 void
  • 确实如此。然后我想知道为什么某些文档可用而其他文档不可用(而是详细程度完全不同(stackoverflow.com/questions/13791572/…
  • 谢谢彼得!事实上,在我的 IDE 中,非粗体函数没有文档,粗体函数只有最低限度(没有描述),带下划线的函数有完整描述。也许 IntelliJ 有一个设置,什么时候可以设置。将等待 CrazyCoder 的智慧

标签: java scala intellij-idea


【解决方案1】:

在 IDEA 的自动补全中,粗体条目是在对象本身的类型上定义的方法,而带下划线的函数是通过隐式转换和 pimp-my-library 添加的(有关说明,请参见例如 here 或在 StackOverflow 或 Google 上搜索)。

但是,对于在 Java 中定义的类型的特殊情况(如 Stringm 的类型),您恰好在 Java-vs-Scala 区别上是正确的:粗体方法是真正的方法,它必须在m(这里是String)的类型中定义,因此在Java中。虽然 pimp-my-library 是 Scala 模式,但通常带下划线的函数将用 Scala 编写(这只是经验法则,但我从未见过例外)。

非粗体函数只是继承。

就文档的数量而言,根据经验,Java 标准库具有相当全面的文档(它应该是方法的规范),而 Scala 通常在文档数量和数量之间变化。

我已经搜索了如何更改 IntelliJ 11 中用于此突出显示的字体,但我没有找到太多 - 您可以更改用于突出显示代码的字体,但我怀疑这在这里​​没有什么区别.

【讨论】:

    【解决方案2】:

    如果您有 IDEA 12,您可以在弹出窗口中的任何选定方法上按 Ctrl-Q 以查看该方法的“快速文档”,不仅如此,您还可以遍历方法列表,快速文档将发生变化以适应新的选择。

    如果您发现任何没有快速帮助的条目,最好是 Scala 方法;@)

    我也会检查 IDEA 11。

    编辑:它也适用于 IDEA 11 CE 和 Ultimate。

    【讨论】:

      猜你喜欢
      • 2018-10-18
      • 2011-11-03
      • 2013-11-06
      • 2015-06-20
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      相关资源
      最近更新 更多