ハッシュテーブルのキーで満たされた文字列のセットを作成しようとしています。for-eachループはSetを繰り返し処理し、デフォルトをハッシュテーブルに入れます。私はまだJavaを学んでいますが、それをやろうとしている方法は正しい構文ではありません。誰かがこれを行う適切な方法を実証し、私の方法がうまくいかず、自分の方法がなぜ機能するのか説明できますか?タイプをインスタンス化できません。セット
private Hashtable<String, String> defaultConfig() {
Hashtable<String, String> tbl = new Hashtable<String, String>();
tbl.put("nginx-servers","/etc/nginx/servers");
tbl.put("fpm-servers","/etc/fpm/");
tbl.put("fpm-portavail","9001");
tbl.put("webalizer-script","/usr/local/bin/webalizer.sh");
tbl.put("sys-useradd","/sbin/useradd");
tbl.put("sys-nginx","/usr/sbin/nginx");
tbl.put("sys-fpmrc","/etc/rc.d/php_fpm");
tbl.put("www-sites","/var/www/sites/");
tbl.put("www-group","www");
return tbl;
}
//This sets missing configuration options to their defaults.
private void fixMissing(Hashtable<String, String> tbl) {
Hashtable<String, String> defaults = new Hashtable<String, String>(defaultConfig());
//The part in error is below...
Set<String> keys = new Set<String>(defaults.keySet());
for (String k : keys) {
if (!tbl.containsKey(k)) {
tbl.put(k, defaults.get(k));
}
}
}
は '新しいHashSetの()でなければなりません;' –
:
あなたは元のマップと相互作用しないキーのコピーが必要な場合は、そのタイプのいずれかを使用するには、のように、提案しましたハッシュテーブルはほとんど廃止されています。代わりにハッシュマップを使うべきです。 – assylias
[List List]をインスタンス化できません。(http://stackoverflow.com/questions/7960149/cannot-instantiate-the-type-listproduct) –
Raedwald