AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
02.12.21 - 14:06:32
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  Java und .NET mit Notes/Domino (Moderatoren: Axel, m3)
| | |-+  wacko practices
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: wacko practices  (Gelesen 1914 mal)
Hernan Cortez
Gast
« am: 30.05.04 - 00:16:22 »

Hi,

neue Sektion. Hier werden ein paar nerdy gotchas von Java mehr oder weniger korrekt dargestellt.  Grin

In Java werden btw. Primitivtypen by value übertragen.
Und Objekte als pass-by-copy-of-reference.

Einfach als Notes-Agent in den Designer kopieren, starten und nachdenken.

Code:
import lotus.domino.*;
import java.util.*;
public class JavaAgent extends AgentBase {

   public void NotesMain() {

      try {
         Session session = getSession();
         AgentContext agentContext = session.getAgentContext();
         
         int intValue = 10;
         
         Vector vec = new Vector();
         vec.add("main1");
         vec.add("main2");
         doStuffWithVector1(vec, intValue);
         doStuffWithVector2(vec, intValue);
         System.out.println("intValue=" + intValue);
         Iterator it = vec.iterator();
         while (it.hasNext()) {
            System.out.println("Element=" + it.next());
         }
     
      } catch(Exception e) {
         e.printStackTrace();
      }
   }
   
   private void doStuffWithVector1 (Vector vec, int intValue) {
      // wird in main erscheinen.
      // eine Kopie eines Pointers auf die Speicheradresse wurde übertragen
      // in den Vector in der Speicheradresse wurde ein neues Element hinzugefügt.
      vec.add("sub1");
// keine Auswirkung auf maiin. Primitivtypen (z.B. boolean, int, long,) werden by value, also als Kopie übertragen.  
      intValue= 1;  
   }
   
   private void doStuffWithVector2 (Vector vec, int intValue) {
      vec = new Vector();
      // wird nicht in main erscheinen.
      // durch new zeigt Variable hier auf neuen Speicheradresse.
      // Variable in main zeigt noch auf die alte Speicheradresse.
                // Es wurde ja nur die Kopie der Speicheradresse übergeben.
      // so ändert sich dadurch nix in Main.
      vec.add("sub2");
// keine Auswirkung auf maiin. Primitivtypen (z.B. boolean, int, long,) werden by value, also als Kopie übertragen.  
      intValue = 2;  
   }
}
« Letzte Änderung: 30.05.04 - 15:29:26 von El Indio Mapuche » Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: