Wer kann diesen Code leicht erklären

Viewty-Fan

Mitglied
Hallo,
ich habe einen Code für meinen Taschenrechner. Leider habe ich trotz Internetrecherche keine genaue Information darüber bekommen, was da jetzt eigentlich passiert. Da dieser Code aber für die Schule ist sollte ich schon wissen was da genau abläuft.

Java:
public static void IstgleichListener(ActionEvent e) {
    	
		   try {
			   String Rechnung = String.valueOf(engine.eval( Display.getText() ));
			   Display.setText(Rechnung);
			   } catch (ScriptException e1) {
			   // TODO Auto-generated catch block
			   e1.printStackTrace();
			  }
			   Rechnung.setText("");
			 			   }

Was passiert da jetzt wo genau. Kann mir das jemand bitte leicht verständlich erklären?

Viewty-Fan
 
G

Gast2

Gast
Naja, wenn man mal weglässt das der Code die Naming Conventions nicht erfüllt (sprich Variablen werden klein geschrieben) ist es ja relativ trivial, aber ich will mal nicht so sein.

Die Methode heißt "IstgleichListener" und bekommt ein ActionEvent. Sprich es wird eine Methode im ActionListener auf einem Button sein, da es ein Taschenrechner ist wohl logischerweise der "=" Button.

Was mich daran stört das die Methode static ist... Das ist nicht wirklich schön und ich denke mal völig unnötig oder der Rest vom der Anwendung ist sehr schlecht designed. Dafür spechen auch die wohl statischen zugriffe auf "Rechnung" und "Display".

Was passiert dann im Code? Sehr einfach:

Der String Variable "Rechnung" wird der Returnwert von der Methode engine.eval(String s) zugewiesen. Die Funktion wird aufgerufen mit dem String der aus dem ich vermute mal Textfeld in der GUI )= Display) geholt (getText) wird. engine.eval(String s) wird wohl vermutlich den String nehmen und die Rechnung ausführen, z.B. aus dem String "4 +5" die Zahl 9 berechnen, also den arithmetischen ausdrucken "evaluieren".
Java:
			   String Rechnung = String.valueOf(engine.eval( Display.getText() ));
Dem Textfeld wird dann der String gegeben damit er angezeigt werden kann:
Java:
			   Display.setText(Rechnung);
Exception handling - was tun wenn ein Fehler auftritt, z.B. die Rechunugn nciht durchgeführt werden kann.
Java:
			   } catch (ScriptException e1) {
			   // TODO Auto-generated catch block
			   e1.printStackTrace();
			  }
Einem weiteren Textfeld "Rechnung" leeren.
Java:
			   Rechnung.setText("");
			 			   }
 
Zuletzt bearbeitet von einem Moderator:

Viewty-Fan

Mitglied
Danke für die Antwort. Mich interessiert hauptsächlich was dort genau passiert:

Java:
String Rechnung = String.valueOf(engine.eval( Display.getText() ));

Mir ist klar, dass der Inhalt aus dem Display übernommen wird und das Ergebnis in den String Rechnung geschrieben wird. Aber was macht diesen engine.eval ? Es wäre toll wenn mir das jemand leicht verständlich erklären könnte.
 
G

Gast2

Gast
Mir ist klar, dass der Inhalt aus dem Display übernommen wird und das Ergebnis in den String Rechnung geschrieben wird. Aber was macht diesen engine.eval ? Es wäre toll wenn mir das jemand leicht verständlich erklären könnte.

Wo war noch mal meine Glaskugel... *kram*

Ne, so geht das nicht. Dazu musst du schon den Quellcode von der Methode eval aus der Klasse posten. Falls du dich wunderst welche Klasse - die Klasse von welchem Typ die Variable "engine" ist. Nur die Signatur selber reicht da nicht. Da kann alles mögliche drin passieren.

Was allgemein so passiert - oder besser was ich vermute was passiert habe ich ja schon geschrieben.
 

Viewty-Fan

Mitglied
Ich habe folgendes importiert:
Java:
import javax.script.ScriptException;
Es geht mir darum was die Methode
Java:
engine.eval
macht. ???:L
 

matze8426

Mitglied
Wie fassy schon geschrieben hat:
...Dazu musst du schon den Quellcode von der Methode eval aus der Klasse posten. Falls du dich wunderst welche Klasse - die Klasse von welchem Typ die Variable "engine" ist. Nur die Signatur selber reicht da nicht. Da kann alles mögliche drin passieren.
Wir kennen die Klasse Engine nicht, du müsstest uns also schon den Inhalt der Klasse posten, damit wir dir sagen können was da passiert. Ich vermute aber das gleiche wie fassy auch.
 

Noctarius

Top Contributor
Vermutlich ist es die eval-Methode des ScriptEngineManagers. Diese macht nichts anderes als den Code, welchem du der eval-Methode übergibst, zu analysieren und auszuführen. Das Ergebnis wird normal wieder zurückgegeben (wenn denn ein Ergebnis da ist).
 

matze8426

Mitglied
Wenn du der Methode einen String übergibst, sie dann den String auswertet und dir ein Ergebnis zurückliefert, dass dem entsprichst, was du dir vorstellst, dann brauchst du doch garnicht mehr darüber wissen.
Die Methode System.out.println hast du ja wahrscheinlich auch schon mal genutzt, ohne dir den Quellcode dieser Methode anzusehen.
Aber falls du mehr zum Java Scripting wissen willst, gibt es wie erwähnt auch dafür eine API
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Wie könnte man diesen Code kürzer machen ? Java Basics - Anfänger-Themen 7
K Wie kann man diesen Code schnell und effizient interpretieren (Man hat nur 4 Minuten) Java Basics - Anfänger-Themen 3
dieter000 Kurze Frage kann mir ejmand kurz diesen Code erklären, bzw wie man die zeilen erklärt und so Java Basics - Anfänger-Themen 1
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
I OOP Wie kann ich diesen Code 'Objektorientiert machen' ? Java Basics - Anfänger-Themen 1
I Wie diesen Code besser schreiben? (Zeitformate) Java Basics - Anfänger-Themen 2
T Wie führe ich diesen Code aus? Java Basics - Anfänger-Themen 7
Y Wie starte ich diesen Code in Eclipse? Java Basics - Anfänger-Themen 10
C Kann mir jemand helfen was mit diesen Fehlern gemeint ist ? Java Basics - Anfänger-Themen 12
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
H Versteht jemand diesen Codewars Error? Java Basics - Anfänger-Themen 8
jhCDtGVjcZGcfzug Was ist der Unterschied zwischen diesen Quellcodes? Java Basics - Anfänger-Themen 3
M Bräuchte Hilfe bei diesen Methoden Java Basics - Anfänger-Themen 4
S Erste Schritte Button einen Wert zuweisen & diesen ausgeben Java Basics - Anfänger-Themen 2
G Wie kann ich diesen Wert ermitteln? Java Basics - Anfänger-Themen 4
R weiß jemand warum Java diesen Fehler ausspuckt? "Variable might not hav been initialized" Java Basics - Anfänger-Themen 4
M Quelltext auslesen und diesen in einen String schreiben Java Basics - Anfänger-Themen 3
P Variablen Variable in if Bedingung anlegen, Wert zuweisen und diesen als Bedingung nutzen Java Basics - Anfänger-Themen 4
S System.out.println gibt diesen Wert aus: Klasse@f102d3 Java Basics - Anfänger-Themen 3
B ich hab diesen Fehler anderuernd. Java Basics - Anfänger-Themen 10
D ein File(Datei) lesen und diesen zu einem Hashmap hinfügen? Java Basics - Anfänger-Themen 5
T Wie kann ich diesen Fehler beheben? Java Basics - Anfänger-Themen 7
G Hilfe komme nicht weiter bei diesen aufgaben Java Basics - Anfänger-Themen 2
I Wie bekomme ich diesen Fehler weg? Java Basics - Anfänger-Themen 5
K Wie kann man diesen String erzeugen? Java Basics - Anfänger-Themen 4
tomzen Programm ignoriert in der Ausführung Code Java Basics - Anfänger-Themen 8
O Obfuscateter Code lässt sich nicht ausführen? Java Basics - Anfänger-Themen 7
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
T Kann mir jemand wörtlich erklären, was in dem Code genau passiert? Java Basics - Anfänger-Themen 1
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
terashy VS Code Project run error Java Basics - Anfänger-Themen 10
JaZuDemNo Code Erklärung Java Basics - Anfänger-Themen 3
M Connect-4-Code analysieren Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
W In alten Code zurück- und dort wieder zurechtfinden? Java Basics - Anfänger-Themen 17
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
T Fehlercode bei code der das Alter ausrechnet Java Basics - Anfänger-Themen 2
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
jhfjeh Strukturgramm in code Java Basics - Anfänger-Themen 11
D Tipps zum Code Java Basics - Anfänger-Themen 24
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
W Java-code Java Basics - Anfänger-Themen 8
W Java-code Java Basics - Anfänger-Themen 9
W Java-Code erklären Java Basics - Anfänger-Themen 6
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
W Rückfrage zur Programmgestaltung (clean code) Java Basics - Anfänger-Themen 12
M intelliJ auf neuem PC, plötzlich kein Code Java Basics - Anfänger-Themen 3
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
C Java boolean Code läuft nicht Java Basics - Anfänger-Themen 5
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
J Größter gemeinsamer Teiler: mein Code Java Basics - Anfänger-Themen 6
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
J Frage zu meinem Code (OOP) Java Basics - Anfänger-Themen 4
Alen123 Warum funktioniert mein Code nicht? Java Basics - Anfänger-Themen 64
Max246Sch Frage zu Währungsrechner Code Java Basics - Anfänger-Themen 2
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
I Code wird nicht ausgeführt Java Basics - Anfänger-Themen 2
R ISBN-10-Code überprüfen Java Basics - Anfänger-Themen 7
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
I HTML Code säubern Java Basics - Anfänger-Themen 4
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
N Java-Code abwärtskompatibel machen Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
S Compiler-Fehler Nicht adressierbarer Code ( Non-addressable code ) Java Basics - Anfänger-Themen 5
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
A Code Problem Java Basics - Anfänger-Themen 6
C Fehler im Code Java Basics - Anfänger-Themen 10
A Zu einem bestimmten Ort im Code springen Java Basics - Anfänger-Themen 11
L Ist der Code richtig Java Basics - Anfänger-Themen 3
josfe1234 code vereinfachen Java Basics - Anfänger-Themen 15
nonickatall Ausführbarkeit von Code testen bzw. Remote Debugging Java Basics - Anfänger-Themen 4
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
S Fehler bei Code mit SubStrings für mich nicht auffindbar. Java Basics - Anfänger-Themen 4
G Programm Code Java Basics - Anfänger-Themen 5
C Code zusammenfassen Java Basics - Anfänger-Themen 5
I Erklärung zum Java Code Java Basics - Anfänger-Themen 2
T Programmablaufsplaninterpretation in Code umformen Java Basics - Anfänger-Themen 1
AlexVo String zu Java Anweisung getString("*** java code ***") Java Basics - Anfänger-Themen 19
M ISBN-Code Java Basics - Anfänger-Themen 26
B Zeitgleiches Arbeiten am Code mit mehreren Personen? Java Basics - Anfänger-Themen 7
S Wie kann ich bei diesem Code erreichen, das als Ergebnis hier 15 herauskommt? Java Basics - Anfänger-Themen 23
N Kann man den Code vereinfachen? Java Basics - Anfänger-Themen 25
marcooooo Code erklären Java Basics - Anfänger-Themen 28
marcooooo Code erklären Java Basics - Anfänger-Themen 4
S Advent of Code Day4 Java Basics - Anfänger-Themen 4
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
Gaudimagspam Caesars Code entziffern in Java Java Basics - Anfänger-Themen 8
Lukasbsc Wie kann ich meinen Code optimieren? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben