public static Map toMap(Map map, String propertyName, String keyPrefix,int offset){ // 使う側が必要に応じてmapに対してロックを取得すべき。 // Mapに保持したい場合、PropertyUtilに情報を保持させると二重に領域確保してしまうので // PropertyUtilに情報を残さないためにloadPropertiesを使用 Properties localProps = loadProperties(propertyName); // keyとvalueを取得するためにまずはkeysを取得。 Enumeration keys = getPropertyNames(localProps, keyPrefix); // keyの文字列から余計な文字列を削除するためのインデックスの計算 int beginIndex = keyPrefix.length() + offset; // keyを取り出し、keyから余計な文字列を削除し、valueとセットでMapに詰める。 while(keys.hasMoreElements()){ String key = keys.nextElement(); map.put(key.substring(beginIndex), localProps.getProperty(key)); } return map; }