Java:无条件跳转到任何地方的外部范围

chr*_*s01 -1 java

假设我有一个执行foo的程序.baz是一个需要测试的新功能.

public static void main (String [] args)
{
  foo ();   // existing

  baz ();  // new
}
Run Code Online (Sandbox Code Playgroud)

为了测试baz,我会把它放在foo前面.所以不需要等待foo.

而且我也希望在巴兹之后结束(跳到外部范围).这是关于测试巴兹,我想在那之后退出.但是我不想把foo放在评论中(也许它比1行更复杂).

我心中最好的就是这个.

public static void main (String [] args)
{
   baz (); 
   if (1==1) return;  // unconditional jump to outer scope

   foo ();
}
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个

如果(1 == 1)

但我不知道任何其他选择.

不允许简单返回(编译器错误,无法访问的代码).

System.exit只有在我们讨论main时才会起作用,但如果我的代码处于更大的上下文中则不行.我想回到外围.

对此更好的想法?

EJK*_*EJK 5

一种替代方案是使用行业标准方法进行测试驱动开发(TDD).

使用标准测试运行器(如JUnitTestNG)编写单元测试.如果采用这种方法,您不必修改生产代码只是为了测试它.

从您的测试类中,baz()直接调用.作为额外的好处,您现在还有一个测试,可以在现在和将来验证此方法的行为.

我建议你阅读有关TDD的主题.有很多好的资源可供选择.它不是灵丹妙药,但使用这种方法有很多好处.