Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
in Java gibt es ja nun leider keine Pointer...
Ich schreibe gerade eine API, welche Parallel zu einem anderen Programm laufen soll und dem anderen Programm bestimmte Funktionen bereitstellen soll.
Für Datentypen wie int und double gibt es ja in Java IntByReference und DoubleByReference, wenn diese als "Pointer" an eine Methode übergeben werden sollen.
Ich habe jetzt aber eine Funktion, welche bspw. so aussieht:
Java:
public int GetKey(boolean F1, boolean F2, boolean F3, boolean F4)
{
...
return ergebnis;
}
Meine Methode soll jetzt also etwas ausführen und der return Wert gibt der aufrufenden Methode zurück, ob die Methode korrekt abgearbeitet wurde. Jedoch muss ich der aufrufenden Methode die Werte für F1, F2, F3 und F4 ebenso liefern.
BooleanByReference gibt es ja leider nicht. Was gibt es für alternativen, bzw. wie kann ich das realisieren?
In Java gibt es keine Pointer, weil die Java-Macher sie für zu Böse halten und weil Methodensignaturen wie diese äußerst unaussagekräftig sind (Stichwort self-documenting Code).
Die Java-Art das zu machen wäre folgende:
Diese 4 booleans bilden ja zusammen eine logische Einheit (vermute ich mal). Gib ihr einen Namen! (z.B. Key) und erstelle eine Klasse dafür:
P.S.: Der Exception-Typ "KeyNotAvailableException" existiert nicht in Java und ist hier auch nur ein Beispiel (ich weiss ja nicht, welche Fehler in deiner Methode noch so auftreten können).
vielen Dank für eure Antworten.
Das ganze hat sich wahrscheinlich schon erledigt.
Und zwar soll mein Programm eine Schnittstelle zwischen einem Hauptprogramm und einer DLL sein.
Die DLL ist in standard C geschrieben -> d.h. es gibt dort auch nicht den Datentyp Bool.
In der DLL Dokumentation steht der Aufruf einer solchen Funktion als GetKey(BOOL *F1, BOOL *F2, usw).
Es hat sich jetzt aber herausgestellt, dass der Datentyp BOOL auch nur ein typedef eines Integers ist.
Somit kann ich für die DLL Funktionen mit dem IntByReference Typ aufrufen und es funktioniert.
Dennoch vielen Dank für eure Tipps! Vielleicht helfen Sie zu einem späteren Zeitpunkt nochmal