我们能否使用Scala来调试Java程序?

4
我曾经面试一位高级Java职位的候选人,他提到他们广泛使用scala命令行来调试Java程序。他说甚至可以直接从scala命令行调用Java函数。
我从未使用过scala,所以无法验证他的说法。这可能是可能的,因为它们都在JVM上运行。
快速的谷歌搜索没有给出任何指针。
真的可以从scala调试Java函数吗?有人能给我提供相关信息吗?
提前感谢您。

3
好的,只需将Java类导入到REPL中,然后就可以开始了。 - Boris the Spider
嘿,Spidey,谢谢你的快速回复.. :-) 你有一个可以开始的URL。 - Geek
1个回答

8

是的,你可以,不过你需要使用Scala语法:

:: ~ » scala                                                                               
Welcome to Scala version 2.10.4 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_25).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val x = new java.io.File("/tmp/foo")
x: java.io.File = /tmp/foo

scala> x.length
res0: Long = 24777

在这里,我使用了与scala发行版捆绑的scala REPL,但实际上,您可以使用sbt(类似于maven的scala)命令,以便所有项目类都可以立即在类路径上使用:

sbt
console
.... // using java code, just like any other jvm code

可以使用纯REPL来实现相同的目的,但是您需要手动重构类路径:

scala -classpath ...

是的,正如评论中@Boris所提到的,IDE(最初是Eclipse, 但现在也有IDEA)有自己的一种方法来实现此功能——内置的交互式工作表(必须安装相关插件):

enter image description here


1
你也可以提到(惊人的)Scala工作表。 - Boris the Spider
3
你可能是OP采访过的人。@Geek,小心:D - Baby

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接