我无法使用同步的HashMap,因为james apache server 2.3.1似乎不允许这样做。
这是我收到的错误消息:
error: generics are not supported in -source 1.4
Map<String, String> list = new HashMap<String, String>();
^
(use -source 5 or higher to enable generics)
1 error
1 warning
这是我在代码中使用它的较短版本。我基本上只是将一些SQL结果存储到此列表中。
try {
conn = ......);
String SQL = "SELECT * FROM list";
getListRS = conn.prepareStatement(SQL);
ResultSet rsListResult = getListRS.executeQuery();
Map<String, String> list = new HashMap<String, String>();
while (rsListResult.next()) {
list.put(rsListResult.getString(0), rsListResult.getString(1));
}
rsListResult.close();
conn.close();
}
catch (SQLException se) {
se.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if (getListResult != null) {
getListResult.close();
}
}
catch (SQLException se2) {
se2.printStackTrace();
}
try {
if (conn != null) {
conn.close();
}
}
catch (SQLException se) {
se.printStackTrace();
}
}
if (this.list.containsKey(mail.getSender()+"="+mail.getRecipients())) {
System.out.println(list);
return mail.getRecipients();
} else {
System.out.println(listlist);
return null;
}
由于詹姆斯不让我编译,我可以使用哪些其他列表来实现这一目标。
错误发生在这里:
<javac destdir="${build.classes}" debug="${debug}" optimize="${optimize}" deprecation="${deprecation}" target="${jdk.target}" source="${jdk.source}">
答案 0 :(得分:2)
由于在Java 1.5中引入了泛型,现在你所能做的就是使用原始的HashMaps并使用大量的检查和强制转换
但最好的办法是升级你的java版本
答案 1 :(得分:1)
这是java编译器的错误。 在ant中,您可以在javac标记中定义源级别,例如:
<javac target="1.5" source="1.5" .....>
(或者,检查jdk.target
和jdk.source
的default.properties文件,并将其更改为1.5。)
使用至少1.5级允许泛型。
顺便说一句。要查看您拥有的Java版本,可以在转到jdk bin文件夹时调用java -version
。