package de.synolo.lib.fw.utils; import java.util.Properties; public class TypedProperties extends Properties { private static final long serialVersionUID = 1L; interface Converter { T convert(String input) throws Exception; } public T getObject(String key, T defaultValue, Converter converter) { T val = defaultValue; try { val = converter.convert(getProperty(key)); }catch(Exception e) { val = defaultValue; } return val; } public byte getByte(String key, byte defaultValue) { return getObject(key, defaultValue, Byte::parseByte); } public byte getByte(String key) { return getByte(key, (byte)0); } public short getShort(String key, short defaultValue) { return getObject(key, defaultValue, Short::parseShort); } public short getShort(String key) { return getShort(key, (short)0); } public int getInt(String key, int defaultValue) { return getObject(key, defaultValue, Integer::parseInt); } public int getInt(String key) { return getInt(key, 0); } public long getLong(String key, long defaultValue) { return getObject(key, defaultValue, Long::parseLong); } public long getLong(String key) { return getLong(key, (byte)0); } public float getFloat(String key, float defaultValue) { return getObject(key, defaultValue, Float::parseFloat); } public float getFloat(String key) { return getFloat(key, (byte)0); } public double getDouble(String key, double defaultValue) { return getObject(key, defaultValue, Double::parseDouble); } public double getDouble(String key) { return getDouble(key, (byte)0); } }