如何在返回后运行方法?

时间:2016-05-18 12:22:59

标签: java sql james

我试图在一组代码中返回数据后运行一个方法。

如果我把它放在返回下面,它将成为无法访问的代码。如果我放在上面,我无法从中提取数据,因为它只会在返回方法之后将数据插入到SQL中。

我正在使用开源的James Email Server来执行此操作。

所以例如..代码是这样的..

public class testList
  extends GenericMatcher
{
    public Collection test(Mail mail) {
    /*All the processing of the mail datas and checks will be done here.. 
    after which, return mail.getRecipients(); at the end will send 
    the result back to.. I dont know where? This return will then 
    insert it into the SQL table. So I would like to move this data 
    from that SQL table to another SQL table that is why I      
    need to access only after the return method.*/
        if (test.contains(test1)) {
            return mail.getRecipients();
            //call other method here
        } else {
            return null;
        }
    }
}

那么有没有办法让我在返回方法之后调用该方法或进行更多的数据处理?我不知道返回方法在哪里。

http://imgur.com/Klru3Jl

3 个答案:

答案 0 :(得分:2)

你可以像这样使用finally关键字:

try {
    doThings();
    return;
} finally {
    doThingsAfterReturn();
}

答案 1 :(得分:0)

您可以使用异常处理机制来执行此操作。将代码放在finally块中,它肯定会执行。

答案 2 :(得分:0)

实际上你可以在testlist类中调用test方法后调用“other method”,这会产生同样的效果

集合abc = new testList()。test();

doMethodAfterReturn();