日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java guava 使用_java – 使用Guava从属性文件创建对象

發(fā)布時間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java guava 使用_java – 使用Guava从属性文件创建对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Properties類是HashTable的子類,HashTable又實現(xiàn)了Map.

你像往常一樣加載它:

Properties properties = new Properties();

try {

properties.load(new FileInputStream("filename.properties"));

} catch (IOException e) {

}

編輯:好的,所以你想將它轉(zhuǎn)換為Map< String,Datasource> 😉

//First convert properties to Map

Map m = Maps.fromProperties(properties);

//Sort them so that password < url < user for each datasource and dataSource1.* < dataSource2.*. In your case default string ordering is ok so we can take a normal treemap

Map sorted = Maps.newTreeMap();

sorted.putAll(m);

//Create Multimap> mapping datasourcename->[password,url, user ]

Function, String> propToList = new Function() {

@Override

public String apply(Map.Entry entry) {

return entry.getKey().split("\\.")[0];

}

};

Multimap nameToParamMap = Multimaps.index(m.entrySet(), propToList);

//Convert it to map

Map> mm = nameToParamMap.asMap();

//Transform it to Map

Map mSD = Maps.transformEntries(mm, new EntryTransformer, DataSource>() {

public DataSource transformEntry(String key, Collection value) {

// Create your datasource. You know by now that Collection is actually a list so you can assume elements are in order: [password, url, user]

return new Datasource(.....)

}

};

//Copy transformed map so it's no longer a view

Map finalMap = Maps.newHashMap(mSD);

可能有一種更簡單的方法,但這應(yīng)該工作:)

還是你用json或xml更好.您還可以從不同的文件加載不同數(shù)據(jù)源的屬性.

edit2:少用番石榴,更多java:

//Sort them so that password < url < user for each datasource and dataSource1.* < dataSource2.*. In your case default string ordering is ok so we can take a normal SortedSet

SortedSet sorted = new SortedSet();

sorted.putAll(m.keySet);

//Divide keys into lists of 3

Iterable> keyLists = Iterables.partition(sorted.keySet(), 3);

Map m = new HashMap();

for (keyList : keyLists) {

//Contains datasourcex.password, datasroucex.url, datasourcex.user

String[] params = keyList.toArray(new String[keyList.size()]);

String password = properties.get(params[0]);

String url = properties.get(params[1]);

String user = properties.get(params[2]);

m.put(params[0].split("\\.")[0], new DataSource(....)

}

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的java guava 使用_java – 使用Guava从属性文件创建对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。