Methode allgemein zugänglich machen - Eclipse

Silvascus

Mitglied
Hallo,

ich wollte fragen, ob es möglich ist eine Methode zu erstellen, die man aus jedem Java Projekt aufrufen kann z.B finde ich es immer ziemlich umständlich bei Feldern/Arrays jedes mal eine Schleife zu machen, nur um deren Speicher abzurufen:

Code:
for(int i = 0; i < arr.length, i++)
    System.out.println(arr[i});

Man könnte doch viel einfacher eine Methode erstellen:

Code:
public static void printArray ( int[] arr)
{
    for(int i = 0; i < arr.length, i++)
        System.out.println(arr[i]);
}

Ich weiß jedoch nicht, wie oder ob es möglich ist diese quasi in Java zu implementieren, sodass ich von jedem Java programm, dass ich in Zukunft schreibe auf diese Methode zugreifen kann (ähnlich, wie bei Math.<Methode>)


MfG
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, gibt es. Du kannst das als Jar exportieren und diese in anderen Projekten als lib nutzen (In Eclipse "Add External Archives").

Aber mMn ist es grad bei solchen Dingen überflüssig und eher noch Quelle für Fehler, als Arbeitserleichterung.

Um Arrays zu Printen, gibts übrigens Arrays.toString() oder mit Java 8
Arrays.stream(array).forEach(...), womit sich auch je nach Bedarf passend printen lässt, ohne sichtbare Schleife.
 
K

kneitzel

Gast
Und wenn man das selbst implementieren will, dann muss die Funktion natürlich in eine Klasse. Du kannst also eine Klasse ArrayUtils oder so erstellen und die Funktion dort hinzu fügen.

Damit das halbwegs sauber ist, packst Du es noch in einen vernünftigen Namespace.

Und dann - wie mrBrown schon erwähnt hat - sollte daraus dann ein jar erstellt werden, welches Du dann bei anderen Projekten mit einbinden kannst.

Das ist dann das Vorgehen, welches die ganzen Libraries machen, nur eben sind es da dann halt meist deutlich mehr Klassen und Namespaces.

Und was die Alternative Arrays.toString() evtl. etwas deutlich macht: Du sollest versuchen, verschiedene Dinge nicht zu sehr zu vermischen. Diese Funktion erstellt erst einmal einfach nur einen String. Den kannst Du dann ganz universell verwenden. Das Ergebnis kannst Du ausgeben (Auf der Konsole, in einem Fenster, ...) oder in einen Stream schreiben (Datei, Netzwerk, ...)
Deine Implementation ist dagegen sehr limitiert und kann die Daten nur auf System.out ausgeben.
wenn Du eine Funktion erstellen willst, dann sollte diese möglichst allgemein sein, damit die Anzahl der Anwendungsmöglichkeiten möglichst groß ist. Eine mögliche Anpassung könnte so z.B. sein, dass Du den PrintStream (das ist System.out - out ist eine Instanzvariable von System vom Typ PrintStream) auch als Parameter mitgibst:
Code:
public static void printArray ( int[] arr, PrintStream stream)
{
    for(int i = 0; i < arr.length, i++)
        stream.println(arr[i]);
}
Das lässt sich aber nun noch weiter treiben. PrintStream ist schon recht speziell - evtl. kann man ja noch einen anderen allgemeineren Stream nutzen....

Das nur um einmal aufzuzeigen, wie Du so Libraries erstellen kannst.

Und ich würde Dir empfehlen, dies einfach einmal zu versuchen. Erstell Dir ein Projekt für Deine eigene Library. Und dann überleg weiter fleissig, was man da so rein stecken kann von Deinem Code und vielleicht auch immer, was Du noch anpassen kannst, um die Funktion möglichst universell zu halten.

mrBrown hat Recht: Das wird in der Praxis kaum Relevanz haben. Aber das ist auf jeden Fall eine gute Übung. Und mit der Zeit kommen dann auch Dinge hinzu, die für Dich sinnvoll sind. Und andere Dinge fliegen dann evtl. raus, da es im Framework besseres gibt und Du es dann entdeckt hast.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A BlueJ - Methode gibt kein int zurück IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
B Kompilieren in Eclipse ( 2 Klasse ohne main()-Methode) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
T Eclipse - Keine Vorschläge außerhalb main-Methode IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
M Intellij IDEA Programm ohne Main-Methode starten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
J Quellcode einer Methode anzeigen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 12
OnDemand Eclipse zeigt keine Documentation bei eigener Methode IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
O Eclipse Suche nach Methode in einer "referenced" Jar-Library IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
wolfgang63 Eclipse findet main-methode nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
F Aufrufbaum einer Methode IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Eclipse Javadoc an Methode mit @override IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
J Main Methode in Netbeans IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
A Netbeans und Methode mit Rückgabewert ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
T Eclipse / von wird überall wird eine bestimmte Methode aufgerufen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
H Eclipsefehler wenn while schleife keine methode beinhaltet IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
B Eclipse - Abstrakte Methode übertragen auf Unterklassen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
D Methode in Eventhandler per Properties IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
F Statische Methode aus Bibliotheksklasse wird nicht angezeigt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
G Eclipse: Nur 1 einzelne Methode im Editor anzeigen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
reibi Eclipseeditor - Editieren von nur einer Methode IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T WebSphere, Probleme mit vererbter Methode. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S (eclipse) Plugin installieren (allgemein) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2

Ähnliche Java Themen

Neue Themen


Oben