如何使用IDE在Java中快速运行静态代码段?

如何使用IDE在Java中快速运行静态代码段?,java,eclipse,intellij-idea,static-analysis,Java,Eclipse,Intellij Idea,Static Analysis,如果可能的话,我想在IDE中快速检查我正在分析的静态方法的结果 public static int foo(int a, int b){ return (a & 11) ^ b; } 例如,右键单击表达式并运行它,如 > foo(11, 2) > 9 > foo(28, 3) > 11 我事先不知道结果(实际代码更复杂),所以单元测试是不可能的 我怎样才能做到这一点呢?在Eclipse中有所谓的Java剪贴簿页面:请参阅 自从Java 9以来,就有了所

如果可能的话,我想在IDE中快速检查我正在分析的静态方法的结果

public static int foo(int a, int b){
    return (a & 11) ^ b;
}
例如,右键单击表达式并运行它,如

> foo(11, 2)
> 9
> foo(28, 3)
> 11
我事先不知道结果(实际代码更复杂),所以单元测试是不可能的


我怎样才能做到这一点呢?

Eclipse中有所谓的Java剪贴簿页面:请参阅

自从Java 9以来,就有了所谓的JShell,它也可以在没有IDE的情况下使用:参见


Java 9JShell可以从IntelliJ IDEA:Tools |JShell控制台使用…操作。

如果使用IntelliJ和Java 9+,您可以访问JShell,即Java 9及以上版本附带的repl。这允许您将方法定义粘贴到jshell控制台中,然后使用不同的参数运行它


有关更多详细信息,请参见(实际的JShell部分位于中间位置,显然没有直接链接)

在Java 9中,您可以使用其他答案中提到的
JShell

如果没有,您仍然可以使用单元测试。从技术上讲,单元测试不需要断言。您可以在单元测试中使用任何代码,这意味着您也可以使用以下代码:

@Test
public void getMyResult(){
    System.out.ptintln(foo(1,10));
}
显然,您不应该将此测试提交到源代码repo中,因为该测试设计得很糟糕(除非
foo
抛出异常,否则它将始终通过),但出于您的目的,它可能会起到作用

编辑:


正如@AxelH在评论中所说的,您还可以创建一个简单的
main
方法。

您的问题是什么?我相信这在任何IDE中都是可能的。对于IntelliJ指令,请看此处Eclipse的可能副本:请看,我不想运行测试,我想从代码段运行函数并获得其结果。单元测试意味着我知道结果,但在我的例子中我不知道(不是这个过于简化的代码)。我也不能运行应用程序,所以我也不能。我唯一的选择是静态分析和运行这样的代码段@霍尔格,我想你找到了。同样在Intellij上,您仍然需要将方法复制到
jShell
?因此,使用intellij没有任何附加值。它们只是提供了一个到
jshell
的快捷方式。那太糟糕了。它“预加载”这个方法而不是复制粘贴它会很有用。这不是真正的@Test。只需创建一个
main
方法即可。那也一样。是的,你说得对。实际上,我甚至没有想过创建一个
main
方法。另一方面,根据项目/设置,创建这样的
@Test
可能比创建主方法更容易。