via Reflections art der verarbeitung der parameter prüfen

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ist es möglich herauszufinden ob ein Methodenparameter IN oder OUT-Parameter ist? Zur erklärung: In einer Api sind viele Methoden mit vielen Parametern. Einige von diesen Parametern erwarten einen Input der verarbeitet wird, andere einen Output in dem das verarbeitete gespeichert wird (eine Variable).

Auf die Bibliothek kann ich keinerlei einfluss nehmen.

Ist es nun möglich herauszufinden ob ein Parameter im laufe der Methode verändert wird/etc?
 
S

SlaterB

Gast
nein, zumindest nicht mit Standardmitteln, könntest dir höchstens einen eigenen Analyser schreiben,

dass ein Parameter geändert wird muss übrigens auch gar nicht mal als OUT zählen,
kann nur zur internen Verarbeitung dienen, Objekt danach vom Aufrufer nicht mehr verwendet
 
G

Gast

Gast
Das ist echt schade. Dann werde ich wohl alle Parameter als inputfelder machen.

Es geht nämlich darum das ein benutzer eine Methode aus der Liste der verfügbaren wählt, testwerte eingibt und die Methode (in diesem fall eher funktion) aufruft und die ergebnisse ausgespuckt bekommt. Gibt es sowas evtl schon beispielhaft?
 
S

SlaterB

Gast
vor 100 Jahren wurde dafür in Programmiersprachen etwas eingeführt, was sich 'Rückgabewert' nennt..
 
G

Guest

Gast
Wie ich bereits sagte kann ich an der Bibliothek nichts ändern, da sie mir nicht zugänglich ist und das auch nicht Sinn des Programms ist. Neben Java gibt es, seit 100 Jahren oder mehr, auch andere Programmiersprachen und da ist es teilweise üblich als return nur einen Fehler/erfolgswert ausgeben zu lassen. Außerdem kann eine Methode (oder in anderen Sprachen Funktion) ja mehr als nur einen Output liefern.

Das heist der return-Wert ist im normalfall immer 'nur' ein Integer 0/1/2/3 und für mich nicht von Nutzen.

Ich konkretisiere nochmal mein Vorhaben:

Ein User will sehen was Funktionen machen und evt. schnell Testwerte eingeben (Gehen wir davon an der User probiert eine pow-Methode aus). Dafür wählt er aus dem Methodenpool die Methode pow. Das Programm gibt nun ein Fenster aus in dem pow ( INPUTFIELD, INPUTFIELD ) steht. Der Benutzer tippt munter seine Werte ein und klickt auf solve. Solve gibt dann das Ergebnis aus.

Sinn der Applikation ist es, das wenn sie einmal funktioniert nicht mehr geändert werden muss und für alle zukünftigen Methoden funktioniert. Der User gibt immer die gewünschte Funktion, sowie die gewünschten parameter an und das prog sagt ihm was raus kommt.

Danke für eure bisherigen Mühen
 
M

maki

Gast
Neben Java gibt es, seit 100 Jahren oder mehr, auch andere Programmiersprachen und da ist es teilweise üblich als return nur einen Fehler/erfolgswert ausgeben zu lassen.
In Java (und de OO im allgemeinen) ist es unüblich, über den Rückgabewert einen Fehler anzuzeigen, dafür gibt es zB. Exeptions in Java und C++.

Außerdem kann eine Methode (oder in anderen Sprachen Funktion) ja mehr als nur einen Output liefern.
Objekte haben eigentlich immer Methoden, Funktionen sind etwas für nicht OO Programmiersprachen.

Außerdem kann eine Methode (oder in anderen Sprachen Funktion) ja mehr als nur einen Output liefern.
Meinst du so etwas wie ein Array oder eher die Seiteneffekte?


Das heist der return-Wert ist im normalfall immer 'nur' ein Integer 0/1/2/3 und für mich nicht von Nutzen.
Wie gesagt, nicht in Java.

Sinn der Applikation ist es, das wenn sie einmal funktioniert nicht mehr geändert werden muss und für alle zukünftigen Methoden funktioniert. Der User gibt immer die gewünschte Funktion, sowie die gewünschten parameter an und das prog sagt ihm was raus kommt.
Was passiert, wenn diese Methoden komplexe Objekte als Paramater erwarten, die man nicht einfach so erstellen kann? ;)

Wenn man wissen möchte, wie ein Objekt/Methode funktionieren, sollte man die API doc lesen, das sollten solche Dinge drinstehen.
 
G

Guest

Gast
Okay, danke.

Wie ihr gemerkt hab ist die Bibliothek die ich nutze ursprünglich in C entstanden und wurde nur für Java umgeschrieben. Allerdings habe ich mit der Bibliothek nichts zu tun, nur sollte die Anwendung in möglichst vielen Fällen/Situationen funktionieren und genau deswegen dieser Umstand.

Wenn die Methode komplexe Objekte erwartet und diese nicht bekommt oder generell Objekte des falschen Typs, so werden halt die Errors angezeigt. Genau darum geht es ja auch. Der Benutzer hat und muss keine Ahnung von Java haben. Er probiert einfach nur aus.

Wenn man so will wird das Programm, wenn es denn noch wird ^^, ein Methodenanalyser bzw ein IDE für einzeilne Java-Befehle.
 
G

Guest

Gast
Das verfehlt den Sinn meines Programms komplett, da der Ablauf dann nicht mehr voll automatisch ist und ich dem Programm direkt selbst die Klassen beibringen könnte und somit Fake-Methoden mach könnte, aber wenn sich dann was an der einzulesenden API ändert muss ich mein Programm auch wieder ändern und das ist "doof".

Wenn es echt keinen Weg gibt *schnief* habe ich wohl pech gehabt. Was mir übrig bleibt ist:

1. Bibliothek laden
2. Methoden auslesen
3. Methode vom Nutzer aussuchen lassen
4. für jeden der Parameter der gewählten Methode ein JTextField erstellen
5. Auf Eingabebestätigung warten
6. Methode mit von user eingegebenen Parametern ausführen
7. Methodenresult ausgeben sowie alle zuvor eingegebenen Parameter (vlt hat sich ja an denen was geändert)

Wenn ich das hinbekomme fresse ich nen Besen ^^ Ich bin bei Punkt 3. Bei 4 werde ich die TextFields wohl erst erstellen (pauschal 20 Stück oder so) und je nach Parameteranzahl TextFields sichtbar werden lassen.

Danke für eure Hilfe *glühenden kopf kühl*
 

Murray

Top Contributor
Wenn die Argumente nach der Verarbeitung modifiziert sein sollen, dann bedeutet das doch, dass es nicht um primitive Typen und auch nicht um sonstige Immutables wie Strings oder die Wrapper-Typen gehen kann; das funktioniert ja nur mit komplexeren Objekten oder Arrays der einfachen Typen. Wie soll der Anwender denn solche Parameter generisch über ein JTextField eingeben können?
 
G

Guest

Gast
Hallo

mal eine kleine Sinnfrage... Wozu das Ganze...

1. Wenn der Nutzer die benoetigten Parameter eingeben soll folgt das er wissen muss, welche Bedeutung diese Parameter haben, dann sollte er auch Wissen, was die Methode macht.

2. Das Verhalten einer Methode kann vom Zustand der Applicationabhaengig sein. Stichwort: Statepattern.

3. Mit Hilfe von try und Error die Funktionsweise einer Methode herauszufinden ist irgendwie nicht besonders sinnvoll.

4. Wenn die API benutzt werden soll und in Java geschrieben wurde muessten die Entwickler doch auch Java Code lesen koennen (sie muessen ihn ja auch schreiben...)

5. Dekompilieren erscheint mir deswegen sinnvoll. Allerdings kenne ich dort nicht die rechtlichen Bestimmungen. Reverse Engineering ist z.B in den meisten Faellen gesetzlich untersagt !!!!!

Also wenn ich recht verstehe ist das Problem das du eine API hast, die weder dokumentiert ist noch sprechende Namen fuer die Funktionen verwendet und die Entwickler dieser API sind auch nicht mehr ansprechbar. Mein dringender Rat tritt die API in die Tonne und suche eine Alternativ API !!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
B Sinn von Reflections Java Basics - Anfänger-Themen 10
P Methoden Reflections: getMethod()-aufrufen ohne Parameter-Angabe Java Basics - Anfänger-Themen 5
G Reflections: Parameterlose Methode aufrufen Java Basics - Anfänger-Themen 15
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
A Java, verarbeitung eines xml-files Java Basics - Anfänger-Themen 2
O Knoten und Liste verarbeitung Java Basics - Anfänger-Themen 20
C Verarbeitung von sehr großen Dateien Java Basics - Anfänger-Themen 52
P Variablen Abfangen von eingaben per java.util.Scanner und weiter Verarbeitung Java Basics - Anfänger-Themen 7
M Zeitgemäße Verarbeitung von Datumswerten in Java Java Basics - Anfänger-Themen 1
Z Objekte in der Verarbeitung stoppen Java Basics - Anfänger-Themen 2
S Arrays - Fehler bei der Verarbeitung: For input string: "Berlin" Java Basics - Anfänger-Themen 14
C Wie am besten die Verarbeitung der Eingabe verzögern ? Java Basics - Anfänger-Themen 5
G Frage zur Verarbeitung einer JSP Java Basics - Anfänger-Themen 4
H Verarbeitung von Zeichenketten Java Basics - Anfänger-Themen 8
D Problem mit der Verarbeitung eines ActionEvents Java Basics - Anfänger-Themen 7
S Bitweise Verarbeitung? Java Basics - Anfänger-Themen 7
8 Hilfe bei Trennung von GUI und Verarbeitung Java Basics - Anfänger-Themen 12
S Verarbeitung 2er KeyEvents gleichzeitig Java Basics - Anfänger-Themen 2
C Interface Parameter und Rückgabewerte in Lambda Ausdrücken verwenden Java Basics - Anfänger-Themen 16
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
BeginnerJava "Weihnachtsbäume" anzeigen: Höhe als Parameter Java Basics - Anfänger-Themen 1
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
X Default Parameter Java Basics - Anfänger-Themen 20
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
I JAX-RS Mehrere Parameter in Query Java Basics - Anfänger-Themen 3
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
P Parameter auf Datenformat überprüfen Java Basics - Anfänger-Themen 5
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
W Parameter solange addieren bis 13 auftaucht Java Basics - Anfänger-Themen 11
L OOP Parameter mit der Draw-Methode übergeben Java Basics - Anfänger-Themen 11
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
R Zu viele leere Parameter Java Basics - Anfänger-Themen 8
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
V Unbekannte Parameter Java Basics - Anfänger-Themen 1
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
B CSV einlesen - Parameter a) encoding b) delimiter Java Basics - Anfänger-Themen 7
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
A festgelegte Parameter Java Basics - Anfänger-Themen 11
PaperHat Methoden als Parameter anderer Methode verwenden Java Basics - Anfänger-Themen 11
D Interface Final für Parameter in überschriebenen Methoden? Java Basics - Anfänger-Themen 3
P Variablen Optionaler Parameter auf der Kommandozeile Java Basics - Anfänger-Themen 12
S Variable Parameter Java Basics - Anfänger-Themen 5
L Variablen Parameter bekommen Java Basics - Anfänger-Themen 13
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
B Webservice -> alle parameter bekommen von form Java Basics - Anfänger-Themen 2
K Klassenmethode mit übergebenen Parameter speichern Java Basics - Anfänger-Themen 7
I BigDecimal als Parameter verwenden Java Basics - Anfänger-Themen 3
J Parameter in main verwenden Java Basics - Anfänger-Themen 3
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Parameter das übergeben wurde ändern? Java Basics - Anfänger-Themen 1
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
K Dynamischen Supplier für Parameter Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
M Methode mit Parameter Java Basics - Anfänger-Themen 4
G Objektübergabe durch Parameter Java Basics - Anfänger-Themen 3
J Erste Schritte catch Exeption Parameter Java Basics - Anfänger-Themen 7
A Erste Schritte Methoden mit Parameter Java Basics - Anfänger-Themen 2
D Statische Objekte mit variablem Parameter Java Basics - Anfänger-Themen 1
N Klassen Klassen zwingende Parameter mitteilen Java Basics - Anfänger-Themen 4
L Methoden Methode Parameter vertauschen? Java Basics - Anfänger-Themen 3
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
A Methoden Parameter optionalisieren möglich? - Wie? Java Basics - Anfänger-Themen 19
N Beliebig viele parameter Java Basics - Anfänger-Themen 3
F Methoden: Referenzvariable als Parameter Java Basics - Anfänger-Themen 4
J HttpGet Parameter mitgeben Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
T Klasse von erfahren wenn Obertyp Parameter ist Java Basics - Anfänger-Themen 6
J Klassen Fehler mit Parameter des Konstruktors bei einer Objekterzeugung Java Basics - Anfänger-Themen 5
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben