我试图创建一个字符串集,其中填充了哈希表中的键,以便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));
}
}
}
Set
不是类,而是接口。
因此,基本上可以仅实例类实现Set
(HashSet
,LinkedHashSet
或TreeSet
)
例如 :
Set<String> mySet = new HashSet<String>();
问题内容: 当我尝试运行此代码时: 我收到此错误: 我不明白为什么我无法实例化课程…在我看来似乎是对的… 问题答案: 是一个接口,因此您无法直接实例化它。您可以实例化一个具体的子类,例如:
问题内容: 我有以下代码: 错误: 是我的EJB项目中的一个实体。为什么我收到此错误? 问题答案: 是一个接口。接口无法实例化。只能实例化具体类型。你可能想使用,这是一个 实现 了的接口。
我试图将图像添加到数组中,但它给出了错误不能实例化类型Image j 原因会是什么?
问题内容: 我有这堂课 我正在尝试使用此方法在此类之外创建变量 这给了我这个错误 问题答案: 在实例化泛型时,应将其替换为相应的对象。 例如:
下面是我收到错误的代码(在“new”之后的第二个“Killer”处)。 这给我带来了不少麻烦,因为我看不出为什么基于Killer的构造函数,这个声明应该有效。 这是杀手班: 我知道这可能有一个简单的解决方案,但到目前为止,我还没有看到。
我已经在网上看过了,但每个人都有同样的问题。 有人能帮帮我吗?谢谢!