Methoden in verschiedenen Klassen aufrufen

Status
Nicht offen für weitere Antworten.

MQue

Top Contributor
Hallo,


ich habe ein Problem mit den Methodenaufrufen in verschiedenen Klassen und zwar habe ich 3 Klassen für die serielle schnittstelle (ich hab auch so viel Ports). je nach x soll die Methode "writeToRemote" in der Klasse SerielleSchnittstelle1, SerielleSchnittstelle2 oder SerielleSchnittstelle3 aufgerufen werden. Gibts da noch eine andere (kürzere) Möglichkeit als die unten?
z.B.: SerielleSchnittstelle + x.writeToRemote(..) oder sowas ähnliches

Vorallem ist mein Problem, dass eine Klasse für eine serielle Schnittstelle hinzugefügt oder weggenommen werden kann und ich dann nicht in diesem Programmteil herumkopieren bzw. herumprogrammieren will, das ganze soll also dynamisch sein.

Herzliche Dank für die Antworten.

lg
Michl


Code:
 private int x = 0;

x ändert sich hier.


if ((x == 1)
            SerielleSchnittstelle1.writeToRemote(anfrage);  //writeToRemote ist eine statische Methode
else if ((x == 2)
            SerielleSchnittstelle2.writeToRemote(anfrage);
else if ((x == 3)
            SerielleSchnittstelle3.writeToRemote(anfrage);
 

kama

Top Contributor
Hallo,

schon mal über ein Array der Schnittstellen nachgedacht?

MfG
Karl Heinz Marbaise
 

MQue

Top Contributor
ja das ist mir bekannt, dass ich Objete in eine Array geben kann bzw. eine Referenz.
Mein Problem ist aber, dass ich eine KlassenMethode aufrufe und daher Klassen in ein Array geben müsste, da liegt mein Problem.

ist das irgendwie möglich?

vielen Dank
 

EOB

Top Contributor
wo ist denn der unterschied, ob du ein objekt oder eine klasse reinpackst?

grüße
 

EOB

Top Contributor
meinst du mich? mir war das klar...ich wollte es vom poster hören :). am besten, du machst dir noch ein interface drüber, dann kannst du sogar verschiedenen klassen reinpacken! :meld:

grüße
 

MQue

Top Contributor
das man aus Klassen Objekte instanziert ist mir bekannt ja aber das ich Klassen in ein Array packen kann nicht.
Vor allem welchen typ hat das array wenn ich die Klassen:

SerielleSchnittstelle1
SerielleSchnittstelle2
SerielleSchnittstelle3
SerielleSchnittstelle4
in das array geben möchte?

lg
 

EOB

Top Contributor
also du verstehst da was nicht...was ist für dich eine klasse und was ein objekt einer klasse? was willst du sonst in ein array oder jede andere Datenstruktur packen?

beispiel:

Code:
Klasse klasse = new Klasse();

Klasse[] klassenArray = new Klasse[10];

klassenArray[0] = klasse;

was geht daran nicht?

Vor allem welchen typ hat das array wenn ich die Klassen:

tja, dann musst du drüber noch ein interface bauen, welche deine schnittstellen implementieren. also sowas:

Code:
interface ISchnittstelle{
    writeToRemote(String anfrage);

}

//und dann

class Schnittstelle1 implements ISchnittstelle{
    //implementierung
}

du kannst mir folgen?

grüße
 

MQue

Top Contributor
nicht wirklich, du erzeugst ja wieder ein Objekt einer Klasse und gibst es dann in ein Array, das ist mir schon klar aber das brauch ich nicht.
Ich möchte, wenn x = 1 ist, die statisch Methode von SerielleSchnittstelle1 aufrufen, wenn x = 2 dann SerielleSchnittstelle2 usw.
 
S

SlaterB

Gast
statische Operation sind eben tödlich bei dynamischer Programmierung mit Arrays oder auch Vererbung,
da kann man nix machen,
jedenfalls nix sinnvolles,

könntest natürlich die class-Objekte in ein Array speichern und dann über Reflection die Operation aufrufen,
aber lass sowas lieber sein, mein Tipp
 

Yzebär

Bekanntes Mitglied
Mich würde mal interessieren, worin sich die Schnittstellen1...3 bzw. ihre writeToRemote-Methoden unterscheiden und warum du keine Schnittstellenobjekte verwendest (die von einer abstrakten Klasse abgeleitet sind oder ein Interface implementieren).
 

EOB

Top Contributor
genau, beschreib doch mal, was du machen willst...da gibts sicher ne einfacherer lösung für...

grüße
 

MQue

Top Contributor
die klassen SerielleSchnittstelle1, 2,3 unterscheiden sich nur dadurch, das die Klasse SerielleSchnittstelle1 auf COM1, die SerielleSchnittstelle2 auf COM2 uws schreibt.
 
S

SlaterB

Gast
benutzte ein Interface und nicht-statische Operationen (und seien es einzelne Singleton-Objekte),
schon gehts,

das ist Standard, da gibts keinen Grund dagegen,
da braucht man hier gar nicht krampfhaft nach Alternativen suchen
 

MQue

Top Contributor
Mein Problem ist ja, dass der Auftraggeber reiner C- Programmierer ist und mich da in teufels Küche geritten hat, da er es genauso haben will, sonst kennt sich ja keiner aus dort.
So ist das in der Praxis.
 

Yzebär

Bekanntes Mitglied
Wenn sich nur Parameter (wie der Port, die Baudrate etc.) unterscheiden, brauchst du keine 3 Klassen dafür. Du definierst eine Klasse SerielleSchnittstelle und an den Stellen, wo sie verwendet wird erzeugst du ein Objekt der Klasse und setzt die Parameter (im Konstruktor oder mit set-Methoden). Die Parameter könnten sogar zur Laufzeit aus einer Konfigurationsdatei eingelesen werden.

Wenn du statische Methoden verwenden mußt, weil dein Auftraggeber keine Ahnung hat, kannst du immer noch intern Schnittstellenobjekte verwenden. Dann mußt du die Parameter auch über statische Methoden übergeben bzw. die Schnittstellenobjekte erzeugen.
 
S

SlaterB

Gast
unter diesen Voraussetzungen solltest du dich dann aber an einer kleinen if-else-Konstruktion nicht stören ;)

Reflection oder andere schräge Lösungen fallen dann auch weg,
dann bist du chancenlos
 

EOB

Top Contributor
und so viele COMs wirds ja nicht geben, oder doch? ich würde es auch so machen. ne kleine if abfrage und dann im entsprechenden fall die params mit übergeben.

grüße
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
C Sichbarkeit von Objekten / Methoden in verschiedenen Files Allgemeine Java-Themen 7
B Leere vererbte Interface-Methoden Allgemeine Java-Themen 8
R Programm führt Methoden gleichzeitig aus Allgemeine Java-Themen 2
Encera Unterschied zweier "toString"-Methoden Allgemeine Java-Themen 1
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
B Arrays von Methoden möglich? Allgemeine Java-Themen 44
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
N abstracte klassen methoden Allgemeine Java-Themen 32
G Methoden für die Zukunft sinnvoll? Allgemeine Java-Themen 4
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
LimDul Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
B Methoden Java Getter und Setter Methoden Allgemeine Java-Themen 9
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
R Statistische Methoden (Mathematik) Aufgabe Allgemeine Java-Themen 9
X Brüche kürzen mittels Methoden und ggT Allgemeine Java-Themen 15
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
L mehrere Methoden Allgemeine Java-Themen 19
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
A Automatisches Methoden Laufzeiten logging? Allgemeine Java-Themen 7
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
N HashMap und Methoden richtig einbinden Allgemeine Java-Themen 2
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
Q-bert Methoden Methoden in Java Allgemeine Java-Themen 13
D Methoden Java-Aufgabe Allgemeine Java-Themen 2
M Compiler-Fehler Methoden-Referenz Allgemeine Java-Themen 5
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
E OOP Objekte und Methoden Allgemeine Java-Themen 1
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
T Java Array in Methoden Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
A Methoden verändern Allgemeine Java-Themen 12
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
J Best Practice Testen von protected Methoden Allgemeine Java-Themen 7
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
Sogomn Best Practice "Doppelte" Methoden Allgemeine Java-Themen 3
Paul15 String Methoden Allgemeine Java-Themen 7
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Testen von Methoden Allgemeine Java-Themen 3
S "Vererben" statischer Felder/Methoden Allgemeine Java-Themen 4
F Methoden in der Enumeration Klasse Allgemeine Java-Themen 1
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
T Überschreiben von Methoden Allgemeine Java-Themen 6
M Methoden werden in falscher Reihenfolge bearbeitet Allgemeine Java-Themen 10
S Methoden Methoden überschreiben Allgemeine Java-Themen 3
N Threads statische Methoden in Threads Allgemeine Java-Themen 5
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
A also definition von klassen und string methoden und algorithmik Allgemeine Java-Themen 13
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
S Methoden Frage Allgemeine Java-Themen 2
R Wie kann man diese Methoden in arrays etablieren? Allgemeine Java-Themen 8
M Methoden in Rescources speichern Allgemeine Java-Themen 4
G Synchronisation nicht statischer Methoden Allgemeine Java-Themen 4
A Vererbung finale Methoden überschreiben Allgemeine Java-Themen 24
A Methoden parallelisieren? Allgemeine Java-Themen 2
L Methoden methoden an generischen klassentyp anpassen Allgemeine Java-Themen 5
C Methoden Übernahme von standart nativen Methoden? Allgemeine Java-Themen 9
B Zusammenfassen verschiedener ähnlicher Methoden Allgemeine Java-Themen 8
K JNI: Methoden aus unterschiedlichen Threads aufrufen Allgemeine Java-Themen 3
P Unterschiedliche Clone- Methoden Allgemeine Java-Themen 5
MQue Spezialfrage Überschreiben von Methoden Allgemeine Java-Themen 14
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
MiMa Rekursive Methoden Allgemeine Java-Themen 3
S Programm das alle aufgerufenen Methoden ausgibt..? Allgemeine Java-Themen 6
F ListIterator (next & previous methoden) Allgemeine Java-Themen 5
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
T Methoden per String-Namen aufrufen Allgemeine Java-Themen 2
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
turmaline OOP zwei gleiche Methoden mit kleinen Unterschieden Allgemeine Java-Themen 15
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
K Auf Methoden der Runnable Klasse zugreifen Allgemeine Java-Themen 2
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
D Passende Name für Methoden finden Allgemeine Java-Themen 3
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
GianaSisters ArrayList in Methoden übergeben Allgemeine Java-Themen 3
S static methoden Allgemeine Java-Themen 9
J coole Methoden Allgemeine Java-Themen 6
R Methoden in einem Thread unterschiedlich oft ausführen Allgemeine Java-Themen 4
A OOP: Überschreiben/Implementierung von Methoden Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben