takidoso
Erfahrenes Mitglied
Hallo und Halli,
irgendwie stehe ich ein wenig dumm auf dem Schlauch.
Ich wollte eine relativ einfache Factory, die bestimmte Klassen in einer Map halten würde, Objekte instaziiert.
Klingt doch eigetnlich normal aber Nun weiß ich nicht so richtig warum ich keine Methode finde, die aus einer Klasse ein Objekt holt.
Sicher es gibt die forName Methode, aber die verlangt wieder einen Namen.
folgendes habe ich ausprobiert was aber irgendwie schon strukturell falsch zu sein scheint.
PacsToSwiftConverter ist eine abstrakte Klasse und ich hatte gedacht, dass die Map durch z.B. den Static-Block in den konkreten Unterklassen mit Leben (Elementen) gefüllt wird, was offenbar zumindest kompilierbar ist:
FT04 ist hier eine Textkonstante aus der Interface Pacs04Tagging
drolligerweise im oberen Listing hat er schon compile Probleme in der Methode static public PacsToSwiftConverter newInstance(String identifier), die da lauten:
Cannot cast from Class<capture#1-of ?> to PacsToSwiftConverter
Irgendwie verstehe ich nicht so ganz warum, bzw, was ich da anders machen muss.
Für hilfreiche Ideen sehr dankbar
Takidoso
irgendwie stehe ich ein wenig dumm auf dem Schlauch.
Ich wollte eine relativ einfache Factory, die bestimmte Klassen in einer Map halten würde, Objekte instaziiert.
Klingt doch eigetnlich normal aber Nun weiß ich nicht so richtig warum ich keine Methode finde, die aus einer Klasse ein Objekt holt.
Sicher es gibt die forName Methode, aber die verlangt wieder einen Namen.
folgendes habe ich ausprobiert was aber irgendwie schon strukturell falsch zu sein scheint.
Java:
public class PacsToMT103ConvFactory
{
static private Map <String, String> converterClassMap = new HashMap<String, String>();
static public PacsToSwiftConverter newInstance(String identifier)
{
return (PacsToSwiftConverter)Class.forName(converterClassMap.get(identifier));
}
static public void register(String key, String convClassName)
{
converterClassMap.put(key, convClassName);
}
}
Java:
public class Pacs04ToMT103Converter extends PacsToSwiftConverter implements Pacs04Tagging
{
static
{
PacsToMT103ConvFactory.register(FT04, Pacs04ToMT103Converter.class.getName());
}
public Pacs04ToMT103Converter()
{
}
...
}
drolligerweise im oberen Listing hat er schon compile Probleme in der Methode static public PacsToSwiftConverter newInstance(String identifier), die da lauten:
Cannot cast from Class<capture#1-of ?> to PacsToSwiftConverter
Irgendwie verstehe ich nicht so ganz warum, bzw, was ich da anders machen muss.
Für hilfreiche Ideen sehr dankbar
Takidoso