Fleshgrinder
Lt. Junior Grade
- Registriert
- Mai 2005
- Beiträge
- 405
Ich konnte zu dieser Frage leider keine befriedigende Antwort via Google finden.
Prinzipiell ist es ja gut, dass Java halbwegs typensicher ist, doch manchmal nervt es mich dann doch sehr. Folgende Ausgangssituation, ich will das FactoryPattern für ein Package umsetzen und habe eine Basisklasse von der alle ableiten und die nach außen sichtbar ist. Ich verwende kein Interface weil ich einige Methoden bereits ausprogrammiert haben möchte. Keine Ahnung ob das entgegen dem FactoyPattern ist.
Ok, nun zu meiner eigentlichen Frage. Da nach außen nur diese abstrakte Klasse sichtbar ist, kann ich auch nur auf die Methoden zugreifen, die dort definiert sind. Nun will ich aber bei verschiedenen Unterklassen verschiedene Properties setzen können und brauche deshalb eine allgemeingültige Funktion dafür. Ich habe dabei an etwas gedacht wie.
Bezüglich der ersten setProperty() Methode noch eine Anmerkung. Mir wäre nicht bekannt, dass es in Java etwas wie in PHP gibt, wo von einem String auf eine Variable geschlossen werden kann. Wenn ich mich recht entsinne ging das in PHP irgendwie so:
Java kann das natürlich nicht.
Ich hoffe ihr versteht was ich erreichen will, sonst einfach Löcher in den Bauch fragen.
Prinzipiell ist es ja gut, dass Java halbwegs typensicher ist, doch manchmal nervt es mich dann doch sehr. Folgende Ausgangssituation, ich will das FactoryPattern für ein Package umsetzen und habe eine Basisklasse von der alle ableiten und die nach außen sichtbar ist. Ich verwende kein Interface weil ich einige Methoden bereits ausprogrammiert haben möchte. Keine Ahnung ob das entgegen dem FactoyPattern ist.
Ok, nun zu meiner eigentlichen Frage. Da nach außen nur diese abstrakte Klasse sichtbar ist, kann ich auch nur auf die Methoden zugreifen, die dort definiert sind. Nun will ich aber bei verschiedenen Unterklassen verschiedene Properties setzen können und brauche deshalb eine allgemeingültige Funktion dafür. Ich habe dabei an etwas gedacht wie.
Code:
public abstract class Mama {
/**
* Generic property setter.
*/
public abstract void setProperty(String property, <?> value);
}
PHP:
class Kind1 {
// {{{ Properties
private String property1;
private String property2;
private int property3;
// }}}
public void setProperty(String property, String value) {
if (property.equalsIgnoreCase("property1")
property1 = value;
else if (property.equalsIgnoreCase("property2")
property2 = value;
}
public void setProperty(String property, int value) {
property3 = value;
}
}
Bezüglich der ersten setProperty() Methode noch eine Anmerkung. Mir wäre nicht bekannt, dass es in Java etwas wie in PHP gibt, wo von einem String auf eine Variable geschlossen werden kann. Wenn ich mich recht entsinne ging das in PHP irgendwie so:
PHP:
$property = NULL;
$string = "property";
${$string} = "value";
echo $property; // Liefert value
Java kann das natürlich nicht.
Ich hoffe ihr versteht was ich erreichen will, sonst einfach Löcher in den Bauch fragen.
Zuletzt bearbeitet: