tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
364
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Ich leite mehrere Klassen von verschiedenen übergeordneten Interfaces ab und möchte dann später die Objekte, welche ich von einen anderen Package aus über dias Interface anspreche vergleichen (via ==) also auf Objektgleichheit und nicht auf den selben inhalt, geht das nicht?

    Ich habe in den Klassen welche von diesen Interfaces ableiten z.B Strings deklariert und bei einigen Instanzen sind die Strings genau gleich deswegen kann ich nicht via equals vergleichen weil ich dann falsche Werte erhalte, ich hoffe man versteht mein Problem!
     

  2. #2
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    also da du ein Problem zu haben scheinst, hab ich dein Problem wahrscheinlich doch nicht verstanden. Wenn du machst
    Code :
    1
    
    obj1 == obj2

    Dann wird geprüft ob es sich um das gleiche Object handelt, also ob beide Referenzen auf das gleiche Object zeigen.

    Vielleicht solltest du nochmal genau erklären was du möchtest, vielleicht mit einem kleinen Beispiel. Du solltest auch sagen, was denn nicht funktioniert.

    MFG

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  3. #3
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    PHP-Code:
    public interface Tutorial{
      
    /* Code */
            

    PHP-Code:
    public class TutorialClass implements tutorial{

            
    String string;
             public 
    tutorialClass(String string){
                   
    this.string =string;
                 }
         } 

    PHP-Code:
    public class Package1{
          
             
    Tutoriall[] tut1 = new Tutorial[10];
               
              public 
    Tutorial getTutorial(param){
                   
    iberechne;
                   return 
    tut[i];
                    }
                    
                public 
    void Tutorial[] getTutorials(){
                      return 
    this.tut1;
                }
         } 
    PHP-Code:
    public class Package2{
             
    Tutorial[] tut2 = new Tutorial[10];
              
    tut1package2.getTutorials();
              
    Tutoial test   Package1.getTutorial(param);

              for(
    int i=0i<tut2.length;i++){
                  if(
    test == tut2){
                       
    /* Code */   
                       
    }

    Und die If-Abfrage gibt nie true aus!
     

  4. #4
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Warscheinlich weil sie niemals true ist!
    Wenn du mal deine Beiden Objekte per System.out.println() mal ausgeben lassen würdest, würdest du sehe, dass sie nicht gleich sind, auch wenn es ihr Inhalt ist.
    Versuchs doch mal mit .equals(Object) anstat mit ==.

    Kleinen Tipp noch: Für Java Code die Java-Tags [*JAVA] benutzen, macht es einfacher zu lesen
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

  5. #5
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Habe ich ja, aber das Problem ist dann ist es mehrmals True da der String mehrmals den gleichen inhalt hat!
     

  6. #6
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Was willst du eigentlich vergleichen, die Beiden Objekte oder jeweils die Inhalte EINZELN ?
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

  7. #7
    Spaceman85 Spaceman85 ist offline Mitglied Silber
    Registriert seit
    Jul 2008
    Beiträge
    71
    Die Objekte!
     

  8. #8
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    nach deinem Beispiel, welches auch ein paar Unstimmigkeiten hat, kann es niemals gleich sein.
    In diesem Fall würde true rauskommen.
    Code :
    1
    2
    3
    4
    5
    
    Tutorial tut1 = new TutorialClass
    Tutorial tut2 = tut1;
     
     
      System.out.println(tut1 == tut2);

    In deinem Beispiel kann das auch nie true sein, weil du ein Array mit einem einzelnen Tutorial vergleichst.

    MFG

    Sascha
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  9. #9
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Wieso steckst du sie dann in eine Vorschleife?

    Ok, damit du mich richtig verstehst:
    Objekte vergleichen:
    Code java:
    1
    
    if(tutequals(tut2)){

    Inhalte der Arrays:
    Code java:
    1
    2
    3
    4
    5
    6
    
    for(int iCounter = 0; iCounter < tut.lenght; iCounter++){
      if(tut[iCounter].equals(tut2.[iCounter])){
      ...
      }
    ...
    }

    Edit: Oh, stimmt Sascha, hab ich ganz übersehen...
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

Ähnliche Themen

  1. []Trigger erstellen, Tabelle bei Gleichheit eines Strings füllen
    Von macgyver4711 im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 16.02.09, 18:04
  2. Gleichheit von Perl- Objekten
    Von stso im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 3
    Letzter Beitrag: 21.12.07, 13:35
  3. Strings auf ungefähre Gleichheit untersuchen
    Von Operator_Jon im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 18.03.06, 16:25
  4. 2 Passwörter auf Gleichheit prüfen
    Von Comenius im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 23.01.05, 13:53
  5. xsl; überprüfen auf Gleichheit
    Von beate82 im Forum XML Technologien
    Antworten: 4
    Letzter Beitrag: 16.12.04, 09:40