-2

嗨,我正在使用 java 1.4,我想实现这个:

// protected HashMap            droppedFileTarget;
JExpression[] params = new JExpression[2];

for (String extension   : droppedFileTarget.keySet()) {
  String  field = droppedFileTarget.get(extension);  

  params[1]=VKUtils.toExpression(ref, extension);
  params[2]=VKUtils.toExpression(ref, field);
}                               

但我收到了这个编译错误:

type mismatch : can not convert from Object to String

即使在类型转换之后,错误仍然存​​在:

   for (String extension   : (String) droppedFileTarget.keySet())
4

2 回答 2

1

在第二个示例中,您尝试将整个键集强制转换为字符串,这有几个原因是错误的。如果您坚持不使用泛型,则改为将每个元素获取为Object然后将其强制转换为String

Iterator i = droppedFileTarget.entrySet().iterator();

while (i.hasNext()) {
  Map.Entry entry = i.next();
  String extension = (String)entry.getValue();
  String  field = droppedFileTarget.get(extension);  

  params[1]=VKUtils.toExpression(ref, extension);
  params[2]=VKUtils.toExpression(ref, field);
}
于 2013-09-19T21:38:42.753 回答
1

您需要将 keySet 转换为Set<String>.

于 2013-09-19T10:29:02.127 回答