Zugriff auf Übergabeparameter?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo kennt jemand eine Möglichkeit auf Übergabeparamter
in einer Methode z.B. per Index zu zugreifen?


Code:
public void test(int a1, int a2)
{
    //Also nicht  
    System.out.println(a1);
    //Sondern irgendwie sowas
    System.out.println('ersteÜbergabeparameterVonTest);  
}
:bahnhof:
 
G

Gast

Gast
hallo,

also wenn du imer mehrere int parameter als übergabeparameter hast, dann übergib sie doch einfach als Array, so kannst du dann ja mit einem index also a[1] darauf zugreifen
 

The_S

Top Contributor
und ab java 5 geht auch

Code:
public void methode(int ... a) {

so musst du die Methodenaufrufe nicht verändern, arbeitest in der Methode aber mit einem array.
 
G

Gast

Gast
Danke schonmal, aber die Methoden sind mir vorgegeben. Sie haben mal mehr mal weniger parameter und auch verschiedene Typen. Ich wollte ein Template schreiben welches mir die Werte aller Übergabeparameter in ein File schreibt. Deshalb geht das halt nit mitn Array.
 
G

Gast

Gast
@Rock Lobster
Danke für den Link, aber das hilft mir nit wirklich weiter, alle Ideen die da vorgeschalgen werden ändern irgendwie den Methodenkopf.
Der soll aber bleiben, weil ich ja nit in 100 verschiedenen Methoden, die schon existieren die Übergabeparameter ändern will.
Ich will einfach nur wenn es z.B. 3 Übergabeparamter gibt(egal welcher Art). Auf den ersten, dann den zweiten, usw. zugreifen.
 

Rock Lobster

Bekanntes Mitglied
Naja aber wenn die Methoden schon feststehen, dann weißt Du ja die Reihenfolge und mußt halt innendrin nacheinander die Parameter in der richtigen Reihenfolge abarbeiten. Ich sehe da jetzt auch nicht die Notwendigkeit, das direkt über einen Index zu machen.

Wenn es dennoch aus irgendwelchen Gründen unvermeidbar ist, dann würde ich - da ja die Parameter eh feststehen - einfach an den Anfang der Methode folgendes setzen:

Code:
int[] array = new int[3];
array[0] = param1;
array[1] = param2;
array[2] = param3;

...und dann kannst Du z.B. eine Schleife druntersetzen, die dann tatsächlich über das Array iteriert. Diese könntest Du dann sogar in eine weitere Funktion auslagern (sofern sie immer das gleiche tun soll).

Was ist denn genau der Anwendungszweck? Möglicherweise gibt es eine viel sauberere Lösung für Dein Problem :)
 
G

Gast

Gast
Ich wollte mit log4j jeweils die Übergabeparamter in ein log file schreiben. Und um den Code dafür nicht in jeder Methode "von Hand" zu setzen wollte ich das über ein Template machen.
 

Rock Lobster

Bekanntes Mitglied
Hmm jo dann würde ich eine separate Log-Funktion bauen:

Code:
public static void log(String msg, Object... params)
{
    for(Object o : params)
        msg += ", " + o.toString();

   // hier dann der log4j-Aufruf mit msg als Log-Message
}

Diese kannst Du dann von jeder Deiner feststehenden Methoden aufrufen, z.B.

Code:
public void meineMethode(int param1, String param2, double param3)
{
    log("Ich bin grad in meineMethode()", param1, param2, param3);

    // restlicher Code von meineMethode()
}

Das ist wahrscheinlich noch die bequemste Lösung. Letztendlich baust Du Dir da nur was um den log4j-Aufruf drumrum, was eben dafür sorgt, daß Du es ein wenig komfortabler hast :)
 

Murray

Top Contributor
Eigentlich war der ursprüngliche Wunsch (das Thema verteil sich ja mittlerweile auf mehrere Threads), möglichst ohne Änderungen am Source Methodenaufrufe mitsamt Paramterlisten und Rückgabewerten automatisch zu loggen - das geht ja aber nicht so einfach, denn auch das Erstellen eine (Log4J)Log-Eintrags erfordert ja schließlich etwas Java-Code, der zur Laufzeit vorhanden sein muss. Es muss also neuer Code eingefügt werden, was manchmal mit Instrumentation bezeichnet wird.

Jetzt kann man entweder:
- wie hier vorgeschlagen in alle Methoden manuell entsprechende Log-Aufrufe einfügen
- in der IDE der Wahl geeignete Templates definieren und so die obige Lösung vereinfachen / teilautomatisieren
- den Source-Code parsen und automatisch anreichern (vielleicht auf Basis einer gängigen IDE)
- per Bytecodeinstrumentation diese Anreicherung automatisch beim Laden der Klassen in die VM erledigen lassen

Mir scheint der letzte Weg der mächtigste, zumal man damit ohne Neuübersetzen einfach zur Laufzeit (beim Starten der Anwendung) das Logging hinzunehmen kann. Allerdings ist der Aufwand natürlich auch entsprechend; Bytecodemanipulation ist sicher selbst dann ein ziemlicher Brocken, wenn man gängige Libraries wie ASM verwendet.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Java Zugriff auf Netzwerklaufwerk Allgemeine Java-Themen 1
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
W Zugriff auf Objektvariablen vs. Übergabe Allgemeine Java-Themen 3
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
Tommy Nightmare HTTP Zugriff auf Internetseite im Loginbereich Allgemeine Java-Themen 5
H Zugriff auf PHP Allgemeine Java-Themen 4
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
O JNA Zugriff auf Funktion aus DLL Allgemeine Java-Themen 0
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
M Kein Zugriff auf microSD Karten Allgemeine Java-Themen 4
T Zugriff auf Datenbank Allgemeine Java-Themen 1
J Zugriff auf IMAP GMail Konto scheitert. Allgemeine Java-Themen 2
P Frontend- Zugriff auf WS- Backend Allgemeine Java-Themen 0
U Zugriff auf Datei sperren Allgemeine Java-Themen 5
N Best Practice Semi-Synchronized Zugriff Allgemeine Java-Themen 0
C Zugriff auf Event felder Allgemeine Java-Themen 0
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
F Zugriff Verweigert bei Kopieroperation? Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
S Dynamischer Zugriff Allgemeine Java-Themen 4
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
E Zugriff auf Dateien im Filesystem überwachen Allgemeine Java-Themen 5
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
V Zugriff auf den Objekterzeuger? Allgemeine Java-Themen 4
M Zugriff zweier Threads auf diesselbe Methode Allgemeine Java-Themen 16
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
B JApplet Zugriff auf Local Storage des Browser? Allgemeine Java-Themen 2
D Zugriff auf Array-Liste Allgemeine Java-Themen 19
M gleichzeitiger Zugriff auf eine Textdatei Allgemeine Java-Themen 6
D Eclipse Kein Zugriff auf Inhalt einer referenzierten .jar Allgemeine Java-Themen 5
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
J XML Element Zugriff Allgemeine Java-Themen 4
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
H Vererbung Abgeleitete Klassen und Zugriff Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
S Zugriff auf innere Klasse Allgemeine Java-Themen 3
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
J Zugriff auf Dateien auf einem shared Folder? Allgemeine Java-Themen 3
H Zugriff auf VBA in Java Allgemeine Java-Themen 2
Haave Audio Device Unavailable: Kein gleichzeitiger Zugriff auf Soundsystem möglich Allgemeine Java-Themen 7
G Letzter Zugriff auf Datei Allgemeine Java-Themen 5
C java.io.FileNotFoundException: (Zugriff verweigert) Allgemeine Java-Themen 14
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
C Webstart: Zugriff auf lokale Dateien? Allgemeine Java-Themen 2
X Zugriff auf ComboBoxen in Hauptklasse von zweiter Klasse aus Allgemeine Java-Themen 8
J Zugriff auf gemeinsame Funktionen Allgemeine Java-Themen 4
Airwolf89 Zugriff auf ArrayList<ArrayList> Allgemeine Java-Themen 3
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
T Zugriff zwischen Klassen für repaint Allgemeine Java-Themen 7
N Zugriff auf eine Referenzvar. Allgemeine Java-Themen 3
S Zugriff auf Klasse Allgemeine Java-Themen 4
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
E JNA:Zugriff auf Common-Block von Fortran bzw. Struct in C Allgemeine Java-Themen 2
T Zugriff auf Singleton verkürzen - Namespaces?? Allgemeine Java-Themen 20
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
S Zugriff auf einzelne Bildpunkte Allgemeine Java-Themen 3
D Referenzen weiterreichen vs. statischer Zugriff Allgemeine Java-Themen 3
V Zugriff auf Default-Package? Allgemeine Java-Themen 6
P RegeEx-Problem: Zugriff auf group Allgemeine Java-Themen 2
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
I Zugriff auf Daten Allgemeine Java-Themen 5
T Zugriff per Reflection o.ä. möglich? Allgemeine Java-Themen 18
D Zugriff auf Windows Dienste Allgemeine Java-Themen 7
G Zugriff auf Memberclasses einer geladenen Class-Datei Allgemeine Java-Themen 2
I Gleichzeitiger zugriff auf ein Long über Threads Allgemeine Java-Themen 2
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
J Kein Zugriff auf Klassen im Default Package Allgemeine Java-Themen 8
M Paralleler Zugriff auf statische Methode Allgemeine Java-Themen 5
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
M "Unzulässiger Zugriff auf einen Speicherbereich" Allgemeine Java-Themen 7
A Zugriff auf Parallelport nur über Eclipse nicht über .jar ! Allgemeine Java-Themen 12
G Zugriff auf ein sama share Allgemeine Java-Themen 8
J Java zugriff auf Exchange Server Allgemeine Java-Themen 10
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
L Zugriff auf Objekt das sich in einer Liste befindet Allgemeine Java-Themen 2
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7
J Zugriff auf Map in anderer Klasse Allgemeine Java-Themen 2
J Endlosschleife durch wechselseitigen Zugriff zweier Klassen? Allgemeine Java-Themen 2
F Zugriff auf lokalen Rechner wer weiss Rat ? Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben