私はオブジェクト型のマップを持っています。このマップを文字列型に変換する必要があります。
Map<String, String> map = new HashMap<String, String>();
Properties properties = new Properties();
properties.load(instream);
プロパティを上記のマップに割り当てる方法を教えてください。
よろしくお願いします、 ムナイドゥ
私はオブジェクト型のマップを持っています。このマップを文字列型に変換する必要があります。
Map<String, String> map = new HashMap<String, String>();
Properties properties = new Properties();
properties.load(instream);
プロパティを上記のマップに割り当てる方法を教えてください。
よろしくお願いします、 ムナイドゥ
Map<String, String> properties2Map(Properties p) {
Map<String, String> map = new HashMap<String, String>();
for(Map.Entry<Object, Object> entry : p.entrySet()) {
String key = (String) entry.getKey(); //not really unsafe, since you just loaded the properties
map.put(key, p.getProperty(key));
}
return map;
}
また、型引数を持つユーティリティ メソッドを使用して、ジェネリック型の不変性を回避し、"ダウンキャスト" または "アップキャスト" を行うことも好きです (そうしても安全だとわかっている場合)。この場合:
@SuppressWarnings("unchecked")
<A, B extends A> Map<B, B> downCastMap(Map<A,A> map) {
return (Map<B, B>)map;
}
それからあなたは書くことができます
Properties p = ...
Map<String, String> map = downCastMap(p);
Map<String,String> getPropInMap(Properties prop){
Map<String, String> myMap = new HashMap<String, String>();
for (Object key : prop .keySet()) {
myMap.put(key.toString(), prop .get(key).toString());
}
return myMap;
}