Hallo zusammen.
Ich speichere Werte mittels der Klasse java.util.Properties in eine Txt Datei.
Um das Auslesen etwas zu vereinfachen, habe ich mir eine Generics- Klasse gebaut:
Das ganze starte ich dann mittels
Was mir nicht ganz in den Kopf möchte: Das Auslesen der Variable ist ok, es wird auch ein Wert von der obigen Methode zurückgeliefert, aber er hat den Typ String, obwohl ich ihm doch über die Generics sage, daß es Integer sein soll :shock:
Wenn ich den String dann explizit mittels Integer.valueOf(..) casten möchte, bekomme ich die Meldung, ein String könne nicht nach int gecastet werden, obwohl im String "22" steht ;(
Er kracht also erst beim unteren Quellcodeschnipsel, die obere Methode wird "korrekt" ausgeführt.
Weiß jemand wo mein Denkfehler steckt?
By the way, ich setze Java 7 ein.
Ich speichere Werte mittels der Klasse java.util.Properties in eine Txt Datei.
Um das Auslesen etwas zu vereinfachen, habe ich mir eine Generics- Klasse gebaut:
Java:
public class ConfigHandler <K> extends PdmTalkObject
{
private static Properties properties = new Properties();
/** Ließt ein Propertie aus einer Konfigdatei aus. */
@SuppressWarnings("unchecked")
public K readConfig (ConfigProperty prop) throws IOException, FileNotFoundException
{
try (FileInputStream in = new FileInputStream(configFile);)
{
properties.load(in);
String s = properties.getProperty(prop.propertyKey);
return ((K) s);
}
catch (...)
{
....
}
}
}
Das ganze starte ich dann mittels
Java:
ConfigHandler <Integer> ch = new ConfigHandler<>();
Integer x = ch.readConfig(ConfigProperty.FORM_SHOW_UE_X);
Integer y = ch.readConfig(ConfigProperty.FORM_SHOW_UE_Y);
Was mir nicht ganz in den Kopf möchte: Das Auslesen der Variable ist ok, es wird auch ein Wert von der obigen Methode zurückgeliefert, aber er hat den Typ String, obwohl ich ihm doch über die Generics sage, daß es Integer sein soll :shock:
Wenn ich den String dann explizit mittels Integer.valueOf(..) casten möchte, bekomme ich die Meldung, ein String könne nicht nach int gecastet werden, obwohl im String "22" steht ;(
Er kracht also erst beim unteren Quellcodeschnipsel, die obere Methode wird "korrekt" ausgeführt.
Weiß jemand wo mein Denkfehler steckt?
By the way, ich setze Java 7 ein.
Zuletzt bearbeitet von einem Moderator: