einmalige Ausführung eines Methodenabschnittes

Albatrox

Mitglied
Hallo zusammen,

momentan schreibe ich gerade einen Code der minütlich aufgerufen wird. dazu habe ich eine extra Methode die in der Main Methode aufgerufen wird. Es geht um einen variablen Wert, der in der Methode mit einem anderen fixen Wert verglichen wird.

Der fixe Wert ist eine Art Grenzwert, die Abfrage soll jetzt sein: falls der Grenzwert überschitten ist, dann "Methodenaufruf einer anderen Methode" falls Grenzwert nicht überschitten dann "anderer Methodenaufruf".
kurzes bsp:
Java:
public static void testmethode(...){
if(variablerWert > grenzWert) "Methodenaufruf1"
if(variablerWert < grenzWert) "Methodenaufru2f"
}
Das ist das Grundkonzept. Die variable variablerWert wird jede minute aktualisiert und verändert sich oder bleibt gleich. Jetzt kommt noch eine Bedingung dazu die mir Schwierigkeiten macht.

Falls variablerWert > grenzWert "Methodenaufruf" -> falls der wert in der nächsten Minute größer ist und der Methodenaufruf bereits einmal getätigt wurde dann soll er in dieser "minute" nicht getätigt werden.
Erst wenn der Wert unter den grenzWert sink soll der Methodenaufruf2 stattfinden. Bei dem genau das gleiche wie bei 1. Falls der variablerWert unter dem grenzWert fällt und einige Minuten bleibt soll der Methodenaufruf nur einmal, genau beim ersten unterschreiten des grenzWert stattfinden und dann nicht mehr, bzw erst wenn der grenzWert wieder überschritten wurde.

Ich hoffe ich habe es einigermaßen verständlich ausdrücken können. Falls noch Fragen sind bitte schreiben.

Mein bisherige Ansatz war eine weiter Bedingung in der if-Anweisung in Form eines booleans, allerdings hat das nicht funktioniert, da durch die initialisierung immer wieder der Wert auf true gesetzt wurde.
kurzes Beispiel:
Java:
public static void testmethode(double variablerWert, double grenzWert, boolean bedingung){
if(variablerWert > grenzWert && bedingung == true) 
"Methodenaufruf1"
bedingung = false
if(variablerWert < grenzWert && bedingung == false) 
"Methodenaufru2f"
bedingung = true
}

Zur Verdeutlichung habe ich noch kurz ein kleines bildchen gezeichnet, entschuldigt bitte meine Zeichenkünste :D

Vielen Dank schonmal
Gruß Albatrox
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    12,6 KB · Aufrufe: 36

Bitfehler

Bekanntes Mitglied
Code:
boolean unterGrenzwert = false;

if(variablerWert > grenzwert && unterGrenzwert){
    methode1();
    unterGrenzwert = false;
} else if (variablerWert < grenzwert && !unterGrenzwert){
    methode2();
    unterGrenzwert = true;
}

Ungefähr so?
Anmerkung: Es fehlt die Behandlung, wenn der Grenzwert gleich dem variablen Wert ist. Wie du die boolsche Variable initialisierst, musst du dir auch noch mal überlegen.
 

Dompteur

Top Contributor
Dein Problem ist, dass Java Variablen immer mit Call-Per-Value übergibt. Daher bringt es nichts in der Methode die Variable "bedingung" zu verändern.

Du kannst nun einfach deiner Methode einen Boolean-Rückgabewert verpassen und "bedingung" als Ergebnis zurückzugeben. ==> return bedingung;

Die andere, unsaubere Möglichkeit wäre die Variable "bedingung" als statische, globale Variable zu deklarieren und sie nicht als Parameter zu übergeben. Das sollte man aber nur bei kurzen Programmen machen, da man sonst sehr schnell die Übersicht über das eigene Programm verliert.
 
K

kneitzel

Gast
Also wenn Du etwas nur einmal jede Minute ausführen willst, dann musst Du den letzten Zeitstempel speichern.

Also ein einfacher "Wrapper" mit der gleichen Signatur wie die eigentliche Methode - nur der Name muss verändert sein.

Also wenn Du hast:
public void someMethod();

Dann wird das halt
Code:
public void someMethodWrapper() {
  // Prüfung lastRunTime auf == null oder ob die Zeitdifferenz > 1 min ist
  // ==> lastRunTime auf aktuelle Zeit setzen
  // ==> someMethod() aufrufen
}
Und in die Klasse kommt lastRunTime als Instanzvariable.

Sollten die Funktionen static sein, dann ist lastRunTime auch static.

Und schon wird diese Methode nur noch 1 mal pro Minute aufgerufen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S einmalige Initialisierung Allgemeine Java-Themen 7
M Einmalige Rückgabe eines Wertes? Allgemeine Java-Themen 8
D einmalige Zufallszahlen erstellen Allgemeine Java-Themen 10
M [SOLVED]MVC, einmalige aktionen Allgemeine Java-Themen 7
J Fehlermeldung bei Ausführung von .jar-Datei Allgemeine Java-Themen 9
S Gibt es eine Moeglichkeit die Runtime Ausführung zu analysieren..? Allgemeine Java-Themen 7
M Webservice timeout bei Ausführung der .jar Allgemeine Java-Themen 3
L Fehler bei der Ausführung einer Jar Allgemeine Java-Themen 2
S Fehlermeldungen erscheinen erst in der Ausführung des Programms Allgemeine Java-Themen 11
E Threads Ausführung in Threads ist langsamer als ohne Threads Allgemeine Java-Themen 13
B Ungewollte mehrmalige ausführung des codes Allgemeine Java-Themen 10
H Plattformunabhänginge Ausführung einer .jar Datei Allgemeine Java-Themen 8
R Internetverbindung weg bei ausführung Allgemeine Java-Themen 3
W Deserialisierung und Ausführung Allgemeine Java-Themen 2
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
J Wie die gleichzeitige Ausführung mehrerer Tasks trotz Multithreading verhindern? Allgemeine Java-Themen 2
Daniel_L Mehrfache Ausführung desselben Threads/Tasks verhindern? Allgemeine Java-Themen 4
V Parallele Ausführung Allgemeine Java-Themen 8
D Eclipse-build vs. Jar-Ausführung Allgemeine Java-Themen 3
V Ausführung Client- oder Serverseitig? Allgemeine Java-Themen 13
I Thread eine bestimmte Zeit zur Ausführung geben Allgemeine Java-Themen 2
R ClientHTTPRequest - bei mehrfacher Ausführung? Allgemeine Java-Themen 2
K Richtige JVM für jar Ausführung? Allgemeine Java-Themen 4
F JAR-Datei-Ausführung löst Fehler aus Allgemeine Java-Themen 5
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
T Rotationswinkel eines Bildes bestimmen Allgemeine Java-Themen 4
C Probleme beim Erstellen eines runnable-jar files Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
Encera Größe eines Objektes in Byte berechnen Allgemeine Java-Themen 2
8u3631984 Prüfen ob min. ein Element eines Sets in einem anderen Set enh Allgemeine Java-Themen 4
M Array Rang eines Elements Allgemeine Java-Themen 4
OnDemand Teile eines Links entfernen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
W JSON parsen eines ,mit JS.stringify erstellten Strings Allgemeine Java-Themen 27
H Textposition eines gedrehten Textes verschieben Allgemeine Java-Themen 8
berserkerdq2 run-methode eines Threads so programmieren, dass 30x die Sekunde etwas ausgeführt wird. Allgemeine Java-Themen 44
E Ersetzen eines Bildes in der Kopfzeile eines Word-Docx-Dokuments mit Apache POI XWPF Allgemeine Java-Themen 0
N Fahrtrichtung eines selbstfahrenden Auto ändern Allgemeine Java-Themen 3
T Letztes Zeichen eines Strings enfernen Allgemeine Java-Themen 14
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
gotzi242 Schatzsuche mithilfe eines O(log n) Algorithmus Allgemeine Java-Themen 2
C Koordinaten LONG/LAT eines neuen Punktes in bestimmter Entfernen und Winkel berechnen Allgemeine Java-Themen 3
Tobero Meine Funktion für das beinhalten eines Punktes in einem Kreis funktioniert nicht Allgemeine Java-Themen 5
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Mittelwert anhand eines Stream berechnen Allgemeine Java-Themen 5
kodela Breite eines erweiterten Monitors feststellen Allgemeine Java-Themen 5
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
Zrebna Alternative Darstellung eines Codesnippets Allgemeine Java-Themen 33
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
bueseb84 Wget mit Wildcards - oder wie lädt man bei JFrog die letzte Version eines Artifacts herunter Allgemeine Java-Themen 3
N Erkennen eines Programs Allgemeine Java-Themen 2
N Pausieren eines Programmes Allgemeine Java-Themen 4
D Input/Output Implementierung eines CommandHandlers/Parsers für viele Eingaben Allgemeine Java-Themen 26
M Gibt es eine API die den aktuellen Wert eines Indikators beim Trading zurückgibt? Allgemeine Java-Themen 7
F Wie bekommt man alle Filenamen eines Webserver Verzeichnisses Allgemeine Java-Themen 6
A Fehler beim Öffnen eines Projekts Allgemeine Java-Themen 6
N Eigenschaften eines Buttons per Setter verändern Allgemeine Java-Themen 5
S Ausfuehrung eines Programms aufzeichnen..? Allgemeine Java-Themen 4
X Ermittlung eines doppelte Paars mit Streams Allgemeine Java-Themen 50
Stonie Prüfen von direkter Implementierung eines Interfaces Allgemeine Java-Themen 7
S Vorbereitung eines Praktikums Allgemeine Java-Themen 4
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
M Weiterleiten von empfangenen Nachrichten eines StompSessionHandlers Allgemeine Java-Themen 1
J Programm zum Suchen eines Wortes im Dateisystem Allgemeine Java-Themen 4
H Rename eines Projekts Allgemeine Java-Themen 1
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
ReinerCoder auf Klassen innerhalb eines package zugreifen Allgemeine Java-Themen 22
Meeresgott Erste Schritte Sourcetree - Git | Suchen eines Commits Allgemeine Java-Themen 2
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
DaCrazyJavaExpert OOP Ansätze und Tipps zum Porgrammieren eines Taschenrechners Allgemeine Java-Themen 25
A OOP Problem beim Berechnen der größten Fläche eines Ringes Allgemeine Java-Themen 19
JavaNewbie2.0 Start eines Anderen Programm erkennen Allgemeine Java-Themen 6
I Verbindung eines Java-Plugins mit Webserver Allgemeine Java-Themen 3
L Auswertung eines Testes funktioniert nicht Allgemeine Java-Themen 37
G Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? Allgemeine Java-Themen 4
GreenTeaYT Elemente eines 2Dim LinkedList von links nach rechts ausgeben? Allgemeine Java-Themen 0
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
M Rechenprogramm eines wissenschaftlichen Taschenrechners Allgemeine Java-Themen 4
S Eigenschaften (hier Verknüpfung) eines Files lesen Allgemeine Java-Themen 2
E Typüberprüfung eines chars Allgemeine Java-Themen 5
H Hilfe bei Erstellung eines Hilfe Fenster bei Tastendruck (F1 bei Win98) Allgemeine Java-Themen 5
T Teile eines Double-Wertes verändern Allgemeine Java-Themen 2
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
H Datentypen Typ eines Arrays überprüfen Allgemeine Java-Themen 9
RalleYTN DPI eines Bildes ändern Allgemeine Java-Themen 4
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
K Bestimmten Bereich eines Strings lesen Allgemeine Java-Themen 6
C -Verschiedene Versionen eines Programms verwalten Allgemeine Java-Themen 7
O Datentypen Erstellung eines Containers, der verschachtelte Map-Strukturen beherbergen kann Allgemeine Java-Themen 0
F CPU Last eines Thread ausfindig machen Allgemeine Java-Themen 0
L Menge der Buchstaben eines Textes zählen Allgemeine Java-Themen 3
F Teil eines Bildes laden Allgemeine Java-Themen 1
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
P Löschen eines keys in einer SortedMap Allgemeine Java-Themen 5
RalleYTN Input/Output URL eines Zip Entry? Allgemeine Java-Themen 2
S Alle Methodenaufrufe eines Threads notieren..? Allgemeine Java-Themen 7
J NullPointerExeption bei Inizialisierung eines Arrays Allgemeine Java-Themen 3
I Setzen und Lesen eines Objektes (Enum?) Allgemeine Java-Themen 10
L Implementierung eines AVT-Baums Allgemeine Java-Themen 2
D Größe der Zahlenkombinationen eines Arrays begrenzen Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben