在 IntelliJ IDEA 中一次评估多个表达式

问题描述 投票:0回答:4

在 IntelliJ IDEA 中,我正在寻找一种使用一个命令在调试模式下计算多个表达式的方法。

通常我可以使用

Right Click → Evaluate Expression
(ALT+F8) 来评估单个命令。我希望能够评估一堆表达式,例如:

System.out.println(myVar1);
System.out.println(myVar2);

在 Eclipse 中可以执行这样的“表达式脚本”,但我在 IntelliJ IDEA 中找不到解决方案。

java debugging intellij-idea
4个回答
10
投票

您必须在计算表达式对话框中单击“代码片段模式”(Alt+F8),并且您可以输入任意多行,而不是单行 - 这是默认的 - “表达式模式”。

enter image description here

enter image description here

然后您可以随时使用“表达模式”按钮切换回来。


6
投票

您可以单击表达式框右侧的小全屏箭头按钮,或按

shift
+
enter

如果要编辑多行表达式或代码片段,请单击“表达式”字段中的“展开”或按 ⇧⏎ 切换到多行代码片段视图并返回。

https://www.jetbrains.com/help/idea/evaluating-expressions.html


0
投票

您可以在评估窗口中评估此类表达式

System.out.println(myVar1);
System.out.println(myVar2);

这里唯一的事情是你的整个结果(不是最后一个)不会出现在同一个窗口中,而是出现在控制台中。


0
投票

好吧,我也为此苦苦挣扎,直到我发现在代码中它需要类的完全限定路径(对于 java.* 之外的类)

例如在下面的代码中,我需要从文档对象中找出 xml 字符串表示形式(doc 是我的文档对象)

所以我必须将此代码放入评估选项卡中,您可以从运行窗口打开该选项卡 - 输入下面的表达式并单击评估后 - 我的 xml 字符串打印在控制台中

    javax.xml.transform.TransformerFactory tf = javax.xml.transform.TransformerFactory.newInstance();
    javax.xml.transform.Transformer transformer = tf.newTransformer();
    java.io.StringWriter writer = new java.io.StringWriter();
    transformer.transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(writer));
    System.out.println(writer.getBuffer().toString());
© www.soinside.com 2019 - 2024. All rights reserved.