2016-05-18 9 views
-1

Ich versuche, eine Methode nach dem Zurückgeben von Daten in einer Reihe von Code auszuführen.Wie kann ich eine Methode nach der Rückkehr ausführen?

Wenn ich es unter die Rückkehr stelle, wird es unerreichbarer Code. Wenn ich oben gebe, kann ich keine Daten daraus extrahieren, da es die Daten erst nach der Rückkehrmethode in SQL einfügt.

Ich benutze einen Open Source James Email Server, um dies zu tun.

So zum Beispiel .. der Code ist dies wie ..

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; 
     } 
    } 
} 

So gibt es eine Möglichkeit für mich, um die Methode zu nennen oder etwas mehr Datenverarbeitung nach der Rückkehr Methode zu tun? Ich habe keine Ahnung, wohin die Rückgabemethode auch geht.

http://imgur.com/Klru3Jl

+2

Erfassen Sie die Rückgabe von 'mail.getRecipients()' in einer Variablen und verwenden Sie diese, bevor Sie den Wert der Variablen zurückgeben. –

+0

'versuchen {etwas zurückgeben; } finally {someMethod(); } 'ist auch möglich –

+0

' "wird das Ergebnis zurück zu .. Ich weiß nicht wohin?" '- Es wird das Ergebnis zurück zu was auch immer * genannt * diese Methode senden. Was versuchst du eigentlich hier zu machen? – David

Antwort

2

können Sie die schließlich wie dieses Schlüsselwort:

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

Ich habe versucht, dies zu tun, es führte die Codes nach der Rückkehr am Ende Block, aber es zeigte nicht die Informationen nach der Rückkehr eingefügt. Nach der Rückkehr Methode, werde ich eine Ergebnismenge zu extrahieren Daten in Versuch eingefügt. Aber es gibt keine Informationen aus Resultset – Nicky

+0

Ich fühle mich wie bei endlich, die Dinge zu tun sind bei Versuch ist noch nicht in die Datenbank eingefügt. Daher konnte ich keine Daten aus der Datenbank extrahieren. – Nicky

+0

@Nicky: Das liegt daran, dass der angezeigte Code * nichts * in eine Datenbank einfügt.Es gibt nur einen Wert zurück. Der Code, den Sie * suchen, ist, was auch immer tatsächlich in die Datenbank eingefügt wird. – David

0

Sie Ausnahmebehandlung Mechanismus, um dies zu tun, verwenden können. Platziere den Code in finally block, es wird dann definitiv ausgeführt.

+0

Wie mache ich das? – Nicky

0

eigentlich könnten Sie die „andere Verfahren“ nennen, nach der Testmethode in Testlist-Klasse aufrufen, die die gleiche Wirkung

Sammlung abc = new Testlist() test() haben würde.

doMethodAfterReturn();

Verwandte Themen