我目前正在研究遗留的Java代码,该代码几乎没有编写代码或常见做法.我经常遇到工作但非常糟糕的代码片段(变量名称,冗余和许多其他的拼写错误),我发现自己要求修复.在其中一个实例中,我发现一个类包含三个具有不同名称但几乎相同的方法体的方法.
根据我最初的观察,唯一的区别是其中一个参数的名称.
在采取任何步骤并将它们合并之前,我想对三种方法进行比较,看看是否存在我没有注意到的任何细微差别.
我知道可以比较两个文件,与VCS等版本进行比较,但我无法找到快速比较同一文件中方法定义的方法.
是否有更实用的方法来比较IntelliJ中同一文件的不同部分,而不是将它们复制到不同的文件并运行文件比较?
谢谢,
我正在Scala中开发JavaFX8应用程序,但我无法弄清楚如何将方法引用传递给事件处理程序.为了澄清,我没有使用ScalaFX库,而是直接在JavaFX上构建我的应用程序.
这是相关的代码段.
InputController.java(我用Java编写了这个测试类,以隔离问题只使用方法引用)
public class InputController {
public void handleFileSelection(ActionEvent actionEvent){
//event handling code
}
public InputController() {
//init controller
}
}
Run Code Online (Sandbox Code Playgroud)
这工作(Java)
InputController inputController = new InputController();
fileButton.setOnAction(inputController::handleFileSelection);
Run Code Online (Sandbox Code Playgroud)
这不起作用(Scala)
val inputController = new InputController
fileButton.setOnAction(inputController::handleFileSelection)
Run Code Online (Sandbox Code Playgroud)
这是编译器的错误消息(Scala 2.11.6).
Error:(125, 45) missing arguments for method handleFileSelection in class Main;
follow this method with '_' if you want to treat it as a partially applied function
fileButton.setOnAction(inputController::handleFileSelection)
^
Run Code Online (Sandbox Code Playgroud)
如果我使用Scala 2.12.0-M2,我会收到不同的错误消息.
Error:(125, 45) missing argument list for method handleFileSelection in class Main …Run Code Online (Sandbox Code Playgroud) 我有一个sbt构建,当我从命令行运行,但Intellij不喜欢.我的Intellij在Linux上运行,它的版本是14.1.4,我的scala插件是1.5.2.
Intellij抱怨我使用了enablePlugins(JavaAppPackaging).错误是"表达式类型(DslEntry)必须符合SBT文件中的设置[_]".
我的project/build.properties文件:
sbt.version=0.13.8
Run Code Online (Sandbox Code Playgroud)
我的项目/ plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.3")
Run Code Online (Sandbox Code Playgroud)
还有我的build.sbt的前几行
enablePlugins(JavaAppPackaging)
organization := "org.bodhi"
name := "jar-patch"
version := "1.0"
Run Code Online (Sandbox Code Playgroud) 是否可以使用命令面板播放保存的宏?
我知道可以为宏分配键盘快捷键,但这是另一件事要记住,并且当您有多个宏时不太可行。