java.util.Properties类提供了读取配置文件的功能,但是这个类提供的配置信息只能是String形式的,必须由调用者来进行类型的转化,如转化成整数或者boolean。而这个转化过程也是比较罗嗦的,要捕获异常之类的。可以设计一个有类型的Properties类:
class TypedProperties extends java.util.Properties {
public TypedProperties() ;
public String getString(String key) throws PropertyException ;
public String getString(String key, String defaultValue) ;
public void putString(String key, String value) ;
public int getInt(String key) throws NoSuchProperty;
public int getInt(String key, int defaultValue);
public void putInt(String key, int value) ;
public long getLong(String key) throws PropertyException;
public long getLong(String key, long defaultValue) ;
public void putLong(String key, long value);
public double getDouble(String key) throws PropertyException ;
public double getDouble(String key, double defaultValue) ;
public void putDouble(String key, double value);
public boolean getBoolean(String key) throws PropertyException;
public boolean getBoolean(String key, boolean defaultValue);
public void putBoolean(String key, boolean value) ;
}
class PropertyException extends Exception {
}
这个类和java.util.Properties有点不同,就是它不支持一下子都设置好默认属性,因为我认为在一个集中的地方设置默认属性并不好,而改成在用时传入默认属性。如果一个属性没有默认值,也没有在文件中设置(或者转化类型出错),那么会抛出PropertyException异常。