ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
173
173
EMPFEHLEN
-
26.08.11 13:55 #1
- 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ß
-
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
-
26.08.11 14:04 #3
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:
... sollte es funktionieren.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"); } }
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ß
FabioGeä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
-
joomla 1.5 - JHTML methoden & parameter
Von Maniac im Forum Content Management Systeme (CMS)Antworten: 2Letzter Beitrag: 09.06.09, 18:01 -
Methoden Rückgabe Problem - PHP OOP
Von mkoeni1 im Forum PHPAntworten: 4Letzter Beitrag: 21.03.08, 17:55 -
Methoden-Parameter und Return Statements mit variablen Daten
Von GambaJo im Forum JavaAntworten: 4Letzter Beitrag: 08.03.08, 22:45 -
Via Java Reflection Methoden-Parameter-Bezeichnung ermitteln
Von DarthShader im Forum JavaAntworten: 2Letzter Beitrag: 31.12.07, 20:51 -
methoden problem
Von DevEye im Forum JavaAntworten: 8Letzter Beitrag: 26.11.05, 16:24





Zitieren

Login





