Tôi đang cố gắng tạo Tập hợp các chuỗi được điền bằng các khóa từ một Hashtable để một vòng lặp cho mỗi có thể lặp qua Set và đặt các giá trị mặc định trong một Hashtable. Tôi vẫn đang học Java nhưng cách tôi đang cố gắng thực hiện nó không phải là cú pháp hợp lệ. Ai đó có thể xin vui lòng chứng minh cách thích hợp để làm điều này và giải thích lý do tại sao cách của tôi không hoạt động và của họ không.Không thể khởi tạo kiểu Set
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));
}
}
}
nên được 'HashSet mới();' –
Hashtable chủ yếu là lỗi thời - bạn nên sử dụng HashMap thay thế. – assylias
có thể trùng lặp của [Không thể khởi tạo Danh sách loại] (http://stackoverflow.com/questions/7960149/cannot-instantiate-the-type-listproduct) –
Raedwald