finally
действует как деструктор, поэтому мы можем перезапустить приложение, как это.Предупреждение: finally
плохая замена для финализации, а также не является надлежащим деструктором.
public class RestartDemo
{
public void oddeven(int x)
{
if(x % 2 != 0)
{
try
{
this.restart();
}
catch(Exception e)
{
//do nothing
}
}
else
{
System.out.println(x + " is even");
}
}
public void restart()throws Exception
{
try
{
throw new Exception("Force restart!");
}
finally
{
RestartDemo.main(new String[0]);
}
}
public static void main(String args[])
{
RestartDemo r = new RestartDemo();
r.oddeven((int)(Math.random() * 100));
}
}