tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
173
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    KanzlerOne KanzlerOne ist offline Grünschnabel
    Registriert seit
    Aug 2011
    Beiträge
    1
    Hi,
    ich habe folgenden Code und ein kleines Problem:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    public class SearchEngines<T> {
     
        
        T val;
        
         boolean isEqual(T e){     
         if(val.equals(e)) return true;
        else return false;
            }           
     
        
        int linear(T[] a, boolean p) throws Exception{
        for(int i = 0; i < a.length; i++){
            val = a[i];
            if(p) return i;
        }    
            throw new Exception("element not found");
        }  
              
        }

    Da - anders als bei Sprachen wie z.B. Scala - es in Java nicht möglich ist, eine Funktion als Parameter zu übergeben, muss also der Ergebniswert der Funktion übergeben werden. Und da ist das Problem: Übergebe ich die Methode, wird sie sofort ausgeführt, ich möchte aber, dass sie erst in der Zeile "if(p) return i;" ausgeführt wird.
    Oder ist es einfach notwendig, für jede bool'sche Funktion eine eigene Suchmethode zu schreiben, die diese selber implementiert? Es muss doch möglich sein, eine einzige generische Suchmethode zu schreiben, der man bei Bedarf eine andere Funktion übergeben kann, die dann auf die Arrayelemente angewendet wird.

    Gruß
     

  2. #2
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    Hi und Willkommen bei tutorials.de

    Es ist in Java auch möglich, Methoden als Params zu übergeben.

    Such mal nach Delegate - da findet man mengenweise im Internet.

    Gruß
    Geändert von sheel (26.08.11 um 14:01 Uhr) Grund: Tippfehler mangenweise
     

  3. #3
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi und Herzlich Willkommen bei Tutorials,
    ich nehme mal an, dass du in der Methode "linear(T[] a, boolean p)" einen Vergleich machen willst, um zu überprüfen, ob a[i] gleich val ist?
    Du musst einfach deine Denkweiße rumdrehen.
    Denn wenn du es so machst:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    public class SearchEngines<T> {
        T val;
        
        boolean isEqual(T e){     
           if(val.equals(e)) return true;
           else return false;
        }
        
        int linear(T[] a) throws Exception{
            for(int i = 0; i < a.length; i++){
                if(isEqual(a[i])) {
                    return i;
                }
            }    
            throw new Exception("element not found");
        }  
    }
    ... sollte es funktionieren.

    Allerdings würdest du jetzt einen NullPointerException bekommen, da die Variable val noch 'null' ist. Diese müsstest du vorher also erst initialisieren.

    Ich hoffe ich habe dich richtig verstanden, so dass dir mein Kommentar auch weiter hilft.

    ps: Benutze bitte das nächste mal die java-Tags ("CODE" durch "java" ersetzen)

    Gruß

    Fabio
    Geändert von Fabio Hellmann (26.08.11 um 14:06 Uhr)
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

Ähnliche Themen

  1. joomla 1.5 - JHTML methoden & parameter
    Von Maniac im Forum Content Management Systeme (CMS)
    Antworten: 2
    Letzter Beitrag: 09.06.09, 18:01
  2. Methoden Rückgabe Problem - PHP OOP
    Von mkoeni1 im Forum PHP
    Antworten: 4
    Letzter Beitrag: 21.03.08, 17:55
  3. Antworten: 4
    Letzter Beitrag: 08.03.08, 22:45
  4. Antworten: 2
    Letzter Beitrag: 31.12.07, 20:51
  5. methoden problem
    Von DevEye im Forum Java
    Antworten: 8
    Letzter Beitrag: 26.11.05, 16:24